C#中 object类型
是個對象類型
Object 數(shù)據(jù)類型
保存引用對象的 32 位(4 字節(jié))地址。可以為 Object 的變量分配任何引用類型(字符串、數(shù)組、類或接口)。Object 變量還可以引用任何值類型(數(shù)值、Boolean、Char、Date、結(jié)構(gòu)或枚舉)的數(shù)據(jù)。
Object 數(shù)據(jù)類型可以指向任意數(shù)據(jù)類型的數(shù)據(jù),包括您的應(yīng)用程序識別的任意對象實(shí)例。當(dāng)您在編譯時(shí)不知道變量可能指向哪種數(shù)據(jù)類型時(shí),請使用 Object。
Object 的默認(rèn)值為 Nothing(空引用)。
數(shù)據(jù)類型
可以將任何數(shù)據(jù)類型的變量、常數(shù)或表達(dá)式賦給 Object 變量。若要確定 Object 變量當(dāng)前引用的數(shù)據(jù)類型,您可以使用 System.Type 類的 GetTypeCode 方法。下面的示例闡釋這一點(diǎn)。
Object 數(shù)據(jù)類型為引用類型。但是,當(dāng) Object 變量引用值類型的數(shù)據(jù)時(shí),Visual Basic 將此變量視為一個值類型。
存儲
無論它引用什么數(shù)據(jù)類型,Object 變量都不包含數(shù)據(jù)值本身,而是指向該值的一個指針。它總是在計(jì)算機(jī)內(nèi)存中使用四個字節(jié),但這不包括表示變量值的數(shù)據(jù)的存儲。由于使用指針定位數(shù)據(jù)的代碼的緣故,訪問持有值類型的 Object 變量比訪問顯式聲明類型的變量速度稍慢。
性能。 用 Object 類型聲明的變量足夠靈活,可以包含對任何對象的引用。但是,在這樣一個變量上調(diào)用方法或?qū)傩詴r(shí),總是會遇到后期綁定(在運(yùn)行時(shí))。若要強(qiáng)制前期綁定(在編譯時(shí))和提高性能,請用特定的類名稱聲明變量,或?qū)⑺鼜?qiáng)制轉(zhuǎn)換為特定數(shù)據(jù)類型。
擴(kuò)大。 所有數(shù)據(jù)類型和所有引用類型均擴(kuò)大至 Object 數(shù)據(jù)類型。這意味著您可以將任意類型轉(zhuǎn)換為 Object,而不會遇到 System.OverflowException 錯誤。
但是,如果您在值類型和 Object 之間轉(zhuǎn)換,Visual Basic 會執(zhí)行稱為裝箱和取消裝箱的操作,這將減慢執(zhí)行速度。
總結(jié)
以上是生活随笔為你收集整理的C#中 object类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020 “新四跨”正在进行时!
- 下一篇: C# 语言的高级应用