自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

C#強(qiáng)制類(lèi)型轉(zhuǎn)化有以下三種:

注:objA 為 typeA 類(lèi)型,objB 為 typeB 類(lèi)型

(1) typeA objA = (typeA)objB;

(2) typeA objA = objB as objA;

(3) typeA objA = objB as typeA

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

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

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

其中is為第二種類(lèi)型轉(zhuǎn)換,根據(jù)MSDN上的解釋?zhuān)淖饔檬恰皺z查對(duì)象是否與給定類(lèi)型兼容”,盡管它僅是反回一個(gè)boolean類(lèi)型的值,但它也是通過(guò)進(jìn)行類(lèi)型轉(zhuǎn)換來(lái)判斷是否兼容的,所以,在使用此語(yǔ)句的時(shí)候,會(huì)進(jìn)行一次類(lèi)型轉(zhuǎn)換。那么,如果typeB與typeA是相容的話(huà),上述代碼將會(huì)再次進(jìn)行 (typeA)objB的類(lèi)型轉(zhuǎn),肯定會(huì)影響我們所開(kāi)發(fā)程序的性能。那么有沒(méi)有一種更好的辦法來(lái)幫助我們解決這個(gè)問(wèn)題呢?

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

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

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

【編輯推薦】

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

2009-08-24 14:20:13

C# 強(qiáng)制類(lèi)型轉(zhuǎn)換

2009-08-24 15:02:05

C# 類(lèi)型

2009-09-01 10:58:46

C#匿名類(lèi)型對(duì)象

2009-09-01 18:05:17

C#類(lèi)型聲明

2009-08-12 18:10:33

C#類(lèi)型轉(zhuǎn)化

2009-08-18 10:35:46

C#枚舉類(lèi)型

2009-08-21 09:57:08

C#操作符IS與AS

2009-08-18 09:51:18

C#枚舉類(lèi)型

2009-08-10 17:25:58

C#匿名類(lèi)型

2009-09-04 13:37:44

C#貨幣格式

2009-08-26 10:34:15

C#類(lèi)型C#變量

2011-06-17 16:42:23

C#

2009-08-26 15:46:01

C#匿名類(lèi)型

2009-08-06 15:30:23

C#類(lèi)型系統(tǒng)

2009-08-14 17:09:48

C#引用類(lèi)型

2009-08-31 14:34:46

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

2009-08-28 15:49:35

C# Control類(lèi)

2010-12-30 09:44:10

C#Attribute

2011-07-14 10:39:08

強(qiáng)制類(lèi)型轉(zhuǎn)換函數(shù)C++

2009-08-19 11:21:02

C# ListBox控
點(diǎn)贊
收藏

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