日韩 亚洲一区二_久久vs国产综合色大全_国产精品福利在线_欧美在线一级A片免费观看欧美在线_女同性毛片60分钟

您現(xiàn)在所在的位置:首頁(yè) >學(xué)習(xí)資源 > Unity遊戲/VR/AR入門(mén)教材 > VR開(kāi)發(fā)入門(mén)教程25:面向對(duì)象之訪(fǎng)問(wèn)修飾符

VR開(kāi)發(fā)入門(mén)教程25:面向對(duì)象之訪(fǎng)問(wèn)修飾符

來(lái)源:奇酷教育 發(fā)表於:

Is和asis:語法:對(duì)象 is 類(lèi)型檢查一個(gè)對(duì)象是否兼容於其他指定的類(lèi)型,並返回一個(gè)Bool值,如果一個(gè)對(duì)象是某個(gè)類(lèi)型或是其父類(lèi)型的話(huà)就返回為t

Is和as
is:
 
語法:對(duì)象 is 類(lèi)型
檢查一個(gè)對(duì)象是否兼容於其他指定的類(lèi)型,並返回一個(gè)Bool值,如果一個(gè)對(duì)象是某個(gè)類(lèi)型或是其父類(lèi)型的話(huà)就返回為true,否則的話(huà)就會(huì)返回為false。永遠(yuǎn)不會(huì)拋出異常
如果對(duì)象引用為null,那麼is操作符總是返回為false,因為沒有對(duì)象可以檢查其類(lèi)型
 
as
1、檢查對(duì)象類(lèi)型的兼容性,並返迴轉(zhuǎn)換(huàn)結(jié)果,如果不兼容則返回null;
2、不會(huì)拋出異常;
3、如果結(jié)果判斷為空,則強(qiáng)制執(zhí)行類(lèi)型轉(zhuǎn)換(huàn)將拋出NullReferenceException異常;
4、用as來(lái)進(jìn)行類(lèi)型轉(zhuǎn)換(huàn)的時(shí)候,所要轉(zhuǎn)換(huàn)的對(duì)象類(lèi)型必須是目標(biāo)類(lèi)型或者轉(zhuǎn)換(huàn)目標(biāo)類(lèi)型的派生類(lèi)型
 
使用as操作符有如下2點(diǎn)限制:
1.類(lèi)型不兼容的情況 (編譯器自動(dòng)阻擋)
2.轉(zhuǎn)換(huàn)的目標(biāo)類(lèi)型不能為null的情況(編譯器自動(dòng)阻擋)
 
as與is的區(qū)別
1、as在轉(zhuǎn)換(huàn)的同時(shí)兼判斷兼容性,如果無(wú)法進(jìn)行轉(zhuǎn)換(huàn),則 as 返回 null(沒有產(chǎn)生新的對(duì)象)而不是引發(fā)異常。有了as我想以後就不要再用try-catch來(lái)做類(lèi)型轉(zhuǎn)換(huàn)的判斷了。因此as轉(zhuǎn)換(huàn)成功要判斷是否為null。
2、as是引用類(lèi)型類(lèi)型的轉(zhuǎn)換(huàn)或者裝箱轉(zhuǎn)換(huàn),不能用於值類(lèi)型的轉(zhuǎn)換(huàn)。如果是值類(lèi)型只能結(jié)合is來(lái)強(qiáng)制轉(zhuǎn)換(huàn)
3、is只是做類(lèi)型兼容判斷,並不執(zhí)行真正的類(lèi)型轉(zhuǎn)換(huàn)。返回true或false,不會(huì)返回null,對(duì)象為null也會(huì)返回false。
4、as模式的效率要比is模式的高,因為藉助is進(jìn)行類(lèi)型轉(zhuǎn)換(huàn)的化,需要執(zhí)行兩(liǎng)次類(lèi)型兼容檢查。而as只需要做一次類(lèi)型兼容,一次null檢查,null檢查要比類(lèi)型兼容檢查快。
訪(fǎng)問(wèn)修飾符
欄位、方法、屬性都可以叫做類(lèi)的成員Member,它們都需要定義訪(fǎng)問(wèn)級(jí)別。訪(fǎng)問(wèn)級(jí)別的用處在於控制成員在哪些地方可以被訪(fǎng)問(wèn)。
 
訪(fǎng)問(wèn)修飾符:public/private/internal/protected
private : 私有成員, 在類(lèi)的內(nèi)部才可以訪(fǎng)問(wèn)。
public : 公共成員,完全公開(kāi),沒有訪(fǎng)問(wèn)限制。
protected : 保護(hù)成員,該類(lèi)內(nèi)部和繼承類(lèi)中可以訪(fǎng)問(wèn)。
internal: 當(dāng)前程序集內(nèi)可以訪(fǎng)問(wèn)。程序集:exe\dll中
internal protected:internal 和 protected的併集, 同一個(gè)程序集中的所有類(lèi),以及所有程序集中的子類(lèi)。
 
修飾符可以修飾的內(nèi)容:
類(lèi)(class)和結(jié)構(gòu )(struct)只能用public, internal來(lái)修飾
成員(屬性、方法)能用以上5種來(lái)修飾
 
默認(rèn)沒有訪(fǎng)問(wèn)修飾符的默認(rèn)規(guī)則:
類(lèi)中欄位和方法默認(rèn)的訪(fǎng)問(wèn)修飾符是private
類(lèi)(class)和結(jié)構(gòu )(struct)默認(rèn)的訪(fǎng)問(wèn)修飾符是internal
 
註:程序集(Assembly)-一般指一個(gè)Exe可執(zhí)行文件或類(lèi)庫(kù)(DLL文件)