偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#強制類型轉(zhuǎn)化()、is、as應(yīng)用分析

開發(fā) 后端
這里是關(guān)于C#強制類型轉(zhuǎn)化()、is、as應(yīng)用分析,C#強制類型轉(zhuǎn)化一般分為三種。這些強制轉(zhuǎn)化對我們?nèi)粘5木幊坦ぷ骱苡袔椭?/div>

C#強制類型轉(zhuǎn)化有以下三種:

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

(1) typeA objA = (typeA)objB;

(2) typeA objA = objB as objA;

(3) typeA objA = objB as typeA

在實際開發(fā)過程中我們經(jīng)常用到上面三種類型轉(zhuǎn)換,但這三種C#強制類型轉(zhuǎn)化的區(qū)別,以及在使用中應(yīng)如何選擇呢?

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

  1. If(objB is typeA)   
  2. {   
  3. objA = (typeA)objB;   
  4. }  

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

下面我們來看一下第三種C#強制類型轉(zhuǎn)化。

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

本文來自朱保旭的博客園文章《C#下的強制類型轉(zhuǎn)換應(yīng)用分析:()、is、as》

【編輯推薦】

  1. 定義C#接口學習經(jīng)驗
  2. C# ListBox學習筆記
  3. 操作C# Dataset介紹
  4. C# ODBC訪問MySQL數(shù)據(jù)庫
  5. 淺析C#和Java不同點
責任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-08-24 14:20:13

C# 強制類型轉(zhuǎn)換

2009-08-24 15:02:05

C# 類型

2009-09-01 18:05:17

C#類型聲明

2009-09-01 10:58:46

C#匿名類型對象

2009-08-18 10:35:46

C#枚舉類型

2009-08-12 18:10:33

C#類型轉(zhuǎn)化

2009-08-18 09:51:18

C#枚舉類型

2009-08-21 09:57:08

C#操作符IS與AS

2009-08-10 17:25:58

C#匿名類型

2009-09-04 13:37:44

C#貨幣格式

2009-08-26 10:34:15

C#類型C#變量

2011-06-17 16:42:23

C#

2009-08-31 14:34:46

C#值類型C#結(jié)構(gòu)類型

2009-08-14 17:09:48

C#引用類型

2009-08-26 15:46:01

C#匿名類型

2009-08-06 15:30:23

C#類型系統(tǒng)

2010-12-30 09:44:10

C#Attribute

2009-08-28 15:49:35

C# Control類

2009-08-19 11:21:02

C# ListBox控

2009-08-26 16:46:06

C# ThreadSt
點贊
收藏

51CTO技術(shù)棧公眾號