中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#強制類型轉化有幾種

發布時間:2021-12-01 14:19:44 來源:億速云 閱讀:331 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關C#強制類型轉化有幾種的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

C#強制類型轉化有以下三種:

注:objA 為 typeA 類型,objB 為 typeB 類型

(1) typeA objA = (typeA)objB;

(2) typeA objA = objB as objA;

(3) typeA objA = objB as typeA

在實際開發過程中我們經常用到上面三種類型轉換,但這三種C#強制類型轉化的區別,以及在使用中應如何選擇呢?

在我們使用***種類型轉換時,如果類型typeA是typeB的上層類,則能正確進行類型轉換,如typeB是typeA的上層類,將會拋出System.InvalidCastException異常。所以在實開發中,為了避免異常的發行,我們可能會用到如下的代碼:

If(objB is typeA)   {   objA = (typeA)objB;   }

其中is為第二種類型轉換,根據MSDN上的解釋,它的作用是“檢查對象是否與給定類型兼容”,盡管它僅是反回一個boolean類型的值,但它也是通過進行類型轉換來判斷是否兼容的,所以,在使用此語句的時候,會進行一次類型轉換。那么,如果typeB與typeA是相容的話,上述代碼將會再次進行 (typeA)objB的類型轉,肯定會影響我們所開發程序的性能。那么有沒有一種更好的辦法來幫助我們解決這個問題呢?

下面我們來看一下第三種C#強制類型轉化。

在進行第三種類型轉換時,如果typeB型的實例objB無法轉換到typeA類型時,就會反回一個null值,若轉換成功,則返回一個typeA類型的實例。此種轉換不會發生異常,且僅需一次類型轉換。這就解決了上面兩次類型轉換所帶來的性能消耗。

感謝各位的閱讀!關于“C#強制類型轉化有幾種”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

酉阳| 得荣县| 辽源市| 玛纳斯县| 保德县| 五指山市| 贵溪市| 肇源县| 威海市| 德州市| 大埔县| 肥东县| 伊吾县| 郑州市| 元朗区| 建阳市| 辽宁省| 洛扎县| 桐乡市| 盘山县| 西昌市| 包头市| 同心县| 甘孜| 阳西县| 公主岭市| 甘南县| 英山县| 霍林郭勒市| 楚雄市| 西乌| 仙桃市| 泽库县| 陆河县| 平利县| 那坡县| 西盟| 本溪市| 陈巴尔虎旗| 通山县| 普兰店市|