溫馨提示×

溫馨提示×

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

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

怎么概述.NET 數(shù)據(jù)類型

發(fā)布時間:2021-10-29 17:24:53 來源:億速云 閱讀:174 作者:柒染 欄目:編程語言

怎么概述.NET 數(shù)據(jù)類型,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

任何一門開發(fā)語言都需要數(shù)據(jù)類型作為其基礎(chǔ)根本,就如同自然語言中的文字一般,所以想要掌握一門開發(fā)語言就要先了解其中的數(shù)據(jù)類型,接下來我就談?wù)勎覍?NET的數(shù)據(jù)類型的了解(開發(fā)語言以C#為主)。

數(shù)據(jù)類型

在C#中數(shù)據(jù)類型主要可以分為值類型、引用類型和指針類型,以下是一個數(shù)據(jù)類型的歸類表:

  • ValueType

    • 底層存儲:byte、short、int(默認)、long

    • 結(jié)構(gòu):BigInteger

    • 關(guān)鍵字:char

    • 值范圍:一個Unicode字符,存儲0~65535之間的整數(shù)

    • 關(guān)鍵字:bool

    • 值范圍:True或False

    • sbyte:-128~127

    • byte:0~255

    • short:-32768~32767

    • ushort:0~65535

    • int:-2147483648~2147483647

    • uint:0~4294967295

    • long:-9223372036854775808~9223372036854775807

    • ulong:0~18446744073709551615

    • float:1.5*10^-45~3.4*10^38

    • double:5*10^-324~1.7*10^308

    • decimal:1*10^-28~7.9*10^2

    • 數(shù)值數(shù)據(jù)

    • Boolean

    • Char

    • DateTime和TimeSpan

    • Numerics

    • 枚舉

    • 結(jié)構(gòu)

    • 引用類型

      • Class 類

      • Interface 接口

      • Dynamic

      • Object 超級父類

      • String 字符串

      • Delegate 委托

      • Array 數(shù)組

    • 指針類型

    數(shù)據(jù)類型默認值

    • 數(shù)值數(shù)據(jù):0

    • Boolean:false

    • Char:單個空字符

    • DateTime和TimeSpan:1/1/0001 12:00:00 AM

    • Numerics:0

    • 引用類型:null

    可空類型

    用于表示沒有值的數(shù)值數(shù)據(jù),在實際類型的值上加上null,這種語法只對值類型是合法的,語法是只要在值類型關(guān)鍵字上加?后綴。例如:int? nullableInt = 0;

    內(nèi)存分配

    值類型的變量是分配在棧上,當(dāng)變量離開定義域范圍就會被內(nèi)存移除。

    引用類型變量則是分配在堆上進行托管,有垃圾回收機制控制。

    復(fù)制

    • 淺復(fù)制

         當(dāng)ValueType中包含引用類型時,生成2個獨立的ValueType的值,但其中的引用類型將生成一個引用的副本,即指向內(nèi)存中的同一個對象的引用,改變其中一個的值,另一個也會隨之改變。

    • 深復(fù)制

         將內(nèi)部引用的狀態(tài)完全復(fù)制到一個新對象中,需要實現(xiàn)ICloneable接口。

    賦值操作

    值類型賦值是復(fù)制一份副本,2個變量是獨立操作的。

    引用類型賦值是2個變量是指向托管堆中的同一個對象,改變其中一個變量的值,另一個也會改變。

    值類型中包含引用類型時賦值是默認為淺復(fù)制。

    傳遞

    • 值類型

      • 按值傳遞

         傳遞變量的一個數(shù)據(jù)副本。

    • 引用類型

      • 按值傳遞     復(fù)制了指向調(diào)用者對象的引用,可以改變對象的狀態(tài)數(shù)據(jù),但是不能引用重新賦值一個新對象

      • 按引用傳遞     可以改變對象的狀態(tài)數(shù)據(jù),也可以改變引用在內(nèi)存中的指向,把引用重新賦值一個新的對象

    類型轉(zhuǎn)換

    • 隱式轉(zhuǎn)換

      • 寬化

         隱式向上轉(zhuǎn)換,從值范圍小的類型向值范圍大的類型轉(zhuǎn)換,不會丟失數(shù)據(jù)。

    • 顯示轉(zhuǎn)換

      • 強制類型轉(zhuǎn)換

      • 窄化

         顯示向下轉(zhuǎn)換,從值范圍大的類型向值范圍小的類型轉(zhuǎn)換

    • 溢出檢測(默認不檢測)

      • VS->項目屬性->生成->高級->檢測運算上下溢

      • unchecked

      • checked

      • 代碼級檢測

      • 項目級檢測

    • Convert命令

         可進行顯示的寬化、窄化、字符串解析數(shù)值等操作

    • 自定義類型轉(zhuǎn)換

    使用關(guān)鍵字explicit和implicit自定義類型轉(zhuǎn)換。implicit隱式轉(zhuǎn)換運算符更容易使用,但是如果您希望運算符的用戶能夠意識到正在進行轉(zhuǎn)換,則顯式運算符很有用。

    看完上述內(nèi)容,你們掌握怎么概述.NET 數(shù)據(jù)類型的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI