C#異常、類型轉換、數組等。。

來源:互聯網
上載者:User

一般我們在程式中,如果知道可能發生的異常類型,儘可能捕獲,彈出提示給用戶端,實在不知道的異常,捕獲後寫日誌記錄,商務邏輯上可忽略

1、NullReferenceException  Null 參考異常

2、StackOverflowException 棧溢出

3、TimeoutException 當已達到指定的逾時時間時引發的異常

4、 ArgumentException     在向方法提供的其中一個參數無效時引發的異常  (在某些控制項的事件中,可能會出現參數類型無效的異常)

5、 ThreadAbortException 在對   Abort   方法進行調用時引發的異常  

6、IndexOutOfException:該類用於處理下標超出了數組長度所引發的異常

7、IOException:該類用於處理進行檔案輸入輸出操作時所引發的異常

8、ArithmeticException:該類用於處理與算術有關的異常

9、DivideByZeroException:表示整數貨十進位運算中試圖除以零而引發的異常

 

二、類型轉換

is的規則如下:

  • 檢查物件類型的相容性,並返回結果,true或者false;

  • 不會拋出異常;

  • 如果對象為null,則傳回值永遠為false

as的規則如下:

  • 檢查物件類型的相容性,並返回結果,如果不相容就返回null;

  • 不會拋出異常;

  • 如果結果判斷為空白,則強制執行類型轉換將拋出NullReferenceException異常。

代碼:

if ( o is A )

{A a =(A)o;}

A a=(A)o;

if(a!=null){}

 

三、介面與抽象類別的異同?

相同點

    • 都不能被直接執行個體化,都可以通過繼承實現其抽象方法。

    • 都是面向抽象編程的技術基礎,實現了諸多的設計模式。

不同點

    • 介面支援多繼承;抽象類別不能實現多繼承。

    • 介面只能定義抽象規則;抽象類別既可以定義規則,還可能提供已實現的成員。

    • 介面是一組行為規範;抽象類別是一個不完全的類,著重族的概念。

    • 介面可以用於支援回調;抽象類別不能實現回調,因為繼承不支援。

    • 介面只包含方法、屬性、索引器、事件的簽名,但不能定義欄位和包含實現的方法;抽象類別可以定義欄位、屬性、包含有實現的方法。  

    • 介面可以作用於實值型別和參考型別;抽象類別只能作用於參考型別。例如,Struct就可以繼承介面,而不能繼承類。

 三、數組間的拷貝與複製、深拷貝、淺拷貝的區別等

淺拷貝:如果數組中的成員為實值型別(如:int,float,double,byte等),則完全複製數值到目標數組中,如果是參考型別(如使用者自定 義類型、或者是類庫中的類類型:ArrayList等),則指複製引用給目標數組

深拷貝:則是完完全全的建立一個個新對象.對原來數組中的所有對象全部建立新對象.對新數組中的修改不會影響原來數組中的值或對象CopyTo()和Clone()都屬於淺拷貝,這一點是毋庸置疑的

如何?深拷貝?

.NET庫中似乎沒有提供深拷貝的方法,若要實現深拷貝,需要自己遍曆數組,對原數組中的每個對象實現拷貝,層層深入,直到這個對象中的對象中的對象……中的對象為實值型別為止

因為只有實值型別才是完全拷貝,對一個值進行修改不會影響另一個相同的值

     

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.