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

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

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

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

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

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

  • ValueType
    • 數(shù)值數(shù)據(jù)
      • 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
      • 關(guān)鍵字:bool
      • 值范圍:True或False
    • Char
      • 關(guān)鍵字:char
      • 值范圍:一個Unicode字符,存儲0~65535之間的整數(shù)
    • DateTime和TimeSpan
    • Numerics
      • 結(jié)構(gòu):BigInteger
    • 枚舉
      • 底層存儲:byte、short、int(默認)、long
    • 結(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)換
  • 溢出檢測(默認不檢測)
    • 代碼級檢測
      • unchecked
      • checked

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

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

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

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

 

 

責(zé)任編輯:陳四芳 來源: M守護神博客
相關(guān)推薦

2010-01-20 18:14:58

VB.NET數(shù)據(jù)類型

2013-07-30 14:48:58

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

2010-01-14 14:21:07

2009-08-04 14:56:34

ASP.NET數(shù)據(jù)類型

2009-10-13 16:05:07

VB.NET字符數(shù)據(jù)類

2009-07-28 11:09:02

ASP.NET狀態(tài)類型

2009-10-16 12:52:28

VB.NET簡單數(shù)據(jù)類

2009-11-02 16:15:51

VB.NET字符數(shù)據(jù)類

2009-11-12 13:19:55

2009-10-13 14:38:10

VB.NET訪問類型

2010-01-15 10:47:15

VB.NET命名空間

2010-01-07 14:10:41

VB.NET數(shù)據(jù)類型

2019-08-12 11:40:48

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

2016-08-18 14:13:55

JavaScript基本數(shù)據(jù)引用數(shù)據(jù)

2014-01-05 17:08:09

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

2010-07-22 17:57:40

2009-11-10 11:04:09

VB.NET數(shù)據(jù)類型

2010-08-10 17:17:59

2010-10-15 13:28:34

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

2017-07-10 13:38:07

MySQL數(shù)據(jù)類型整數(shù)類型
點贊
收藏

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