您好,登錄后才能下訂單哦!
怎么概述.NET 數據類型,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
任何一門開發語言都需要數據類型作為其基礎根本,就如同自然語言中的文字一般,所以想要掌握一門開發語言就要先了解其中的數據類型,接下來我就談談我對.NET的數據類型的了解(開發語言以C#為主)。
數據類型
在C#中數據類型主要可以分為值類型、引用類型和指針類型,以下是一個數據類型的歸類表:
ValueType
底層存儲:byte、short、int(默認)、long
結構:BigInteger
關鍵字:char
值范圍:一個Unicode字符,存儲0~65535之間的整數
關鍵字: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
數值數據
Boolean
Char
DateTime和TimeSpan
Numerics
枚舉
結構
引用類型
Class 類
Interface 接口
Dynamic
Object 超級父類
String 字符串
Delegate 委托
Array 數組
指針類型
數據類型默認值
數值數據:0
Boolean:false
Char:單個空字符
DateTime和TimeSpan:1/1/0001 12:00:00 AM
Numerics:0
引用類型:null
可空類型
用于表示沒有值的數值數據,在實際類型的值上加上null,這種語法只對值類型是合法的,語法是只要在值類型關鍵字上加?后綴。例如:int? nullableInt = 0;
內存分配
值類型的變量是分配在棧上,當變量離開定義域范圍就會被內存移除。
引用類型變量則是分配在堆上進行托管,有垃圾回收機制控制。
復制
淺復制
當ValueType中包含引用類型時,生成2個獨立的ValueType的值,但其中的引用類型將生成一個引用的副本,即指向內存中的同一個對象的引用,改變其中一個的值,另一個也會隨之改變。
深復制
將內部引用的狀態完全復制到一個新對象中,需要實現ICloneable接口。
賦值操作
值類型賦值是復制一份副本,2個變量是獨立操作的。
引用類型賦值是2個變量是指向托管堆中的同一個對象,改變其中一個變量的值,另一個也會改變。
值類型中包含引用類型時賦值是默認為淺復制。
傳遞
值類型
按值傳遞
傳遞變量的一個數據副本。
引用類型
按值傳遞 復制了指向調用者對象的引用,可以改變對象的狀態數據,但是不能引用重新賦值一個新對象
按引用傳遞 可以改變對象的狀態數據,也可以改變引用在內存中的指向,把引用重新賦值一個新的對象
類型轉換
隱式轉換
寬化
隱式向上轉換,從值范圍小的類型向值范圍大的類型轉換,不會丟失數據。
顯示轉換
強制類型轉換
窄化
顯示向下轉換,從值范圍大的類型向值范圍小的類型轉換
溢出檢測(默認不檢測)
VS->項目屬性->生成->高級->檢測運算上下溢
unchecked
checked
代碼級檢測
項目級檢測
Convert命令
可進行顯示的寬化、窄化、字符串解析數值等操作
自定義類型轉換
使用關鍵字explicit和implicit自定義類型轉換。implicit隱式轉換運算符更容易使用,但是如果您希望運算符的用戶能夠意識到正在進行轉換,則顯式運算符很有用。
看完上述內容,你們掌握怎么概述.NET 數據類型的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。