深入C#.NET資料類型

來源:互聯網
上載者:User

標籤:一個   tac   資料   hang   rgs   ace   alt   參考型別   gpo   

                           

                                                                                                                                   深入C#資料類型

 

--不同類型的參數傳遞使用值傳遞,在方法中對參數的更改在調用後不能保留。使用ref方式傳遞,可以保留對參數值的更改。 ---值方式參數傳遞和引用方式傳遞使用值方式(不用ref修飾)傳遞實值型別參數時,參數在方法中的修改不會保留。使用值方式(不用ref修飾)參考型別參數時,參數在方法中的修改會保留。使用引用方式(不用ref修飾)傳遞實值型別和參考型別參數時,參數在方法中的修改都會保留。


資料類型按儲存方式可分為兩類:實值型別(棧)和引類型(堆)
實值型別:不同的變數會分配不同的儲存空間
儲存空間儲存的是該變數的值
改變一個變數值不會影響另一個變數值
參考型別:賦值是把原對象引用傳遞給另一個引用
兩個引用指向同一塊記憶體空間
結構的特點
1實值型別

2具有較快資料提取速度(結構中可以有欄位也可以有方法)
當對象需要較少欄位表示時,可以選用結構
結構是實值型別,資料提取速度快

但是頻繁的賦值操作會佔有較大的空間,在開發中多數情況下定義為類
實值型別和參考型別之間的轉換
           裝箱
實值型別 ------> 參考型別
      <------
       拆箱
在實際開發中應該減少不必要的裝箱和拆箱
因為二者的儲存方式不同,轉換時效能損失較大
不加ref傳遞參數,值傳遞,傳遞的是副本,不會改變原值
加ref把實值型別按引用傳遞,傳遞的是引用地址,會改變原值
使用值傳遞,在方法中對參數值得更改在調用後不能保留;使用ref方式傳遞,可以將對參數值更改保留

實值型別和參考型別.C#常用資料類型          

java                                      C#整形        

int                                        int浮點型      

float           float雙精確度行

double          double字串        

Strinng                      string布爾類       

boolean          bool枚舉類       

enum           enum

--實值型別源於System.ValueType家族,每個實值型別的對象都有一個獨立的記憶體地區用於儲存自己的值,實值型別資料所在的記憶體地區稱為棧(Stack)。只要在代碼中修改它,就會在它的記憶體地區儲存這個值。小結對實值型別,不同的變數會分配不同的儲存空間,並且儲存空間中的儲存的是改變數的值。賦值操作傳遞值的是變數的值,改變一個變數的值不會影響另一個變數的值。--應用類型源於System.Object家族在C#中參考型別主要包括數值,類的介面等。

樣本--classprogram{staticvoidMain(string[] args){5int[] infozhang =newint[] {170,60};//張浩的身高和體重資訊int[] infoli=infozhang;//數值引用賦值7Console.WritLine("去年--張浩的身高{0},體重{1}",infozhong[0],infozhong[1]);Console.WritLine("去年--李明的身高{0},體重{1}",infoli[0],infoli[1]);infoli[0]=180;infoli[1]=70;Console.WritLine("今年--張浩的身高{0},體重{1}",infozhong[0],infozhong[1]);Console.WritLine("今年--李明的身高{0},體重{1}",infoli[0],infoli[1]);13Console.ReadLine();}}

 


  數組複製可以利用迴圈實現,對於兩個數組arry1和arry2(arry2的長度不小於arry1的長度)將數組arry1中元素的值複製到arry2中。--細分實值型別和參考型別實值型別--基礎資料型別 (Elementary Data Type):int 長度型:long 浮點型: float double char bool枚舉類:enum結構類:struct參考型別--類:基類:System.Object  字串:string  自訂類:class介面:interface數組:int [] ,string[] ---結構定義:存取修飾詞 struct 結構名{   //結構體}結構的定義有以下特點--結構中可以有欄位,也可以有資料--定義時,結構中的欄位不能被賦初值結構的使用可以不用new 直接定義對象即可聲明結構對象後,必須給結構的成員賦初值-------裝箱和拆箱
   總結:使用值傳遞時,(不用ref修飾)傳遞實值型別參數時,參數在方法中的修改不會保留;使用值傳遞時,(不用ref修飾)傳遞參考型別參數時,參數在方法中的修改會保留;使用引用方式(不用ref修飾)傳遞實值型別參數時或者傳遞參考型別參數時,參數在方法中的修改都會保留;不加ref傳遞參數,值傳遞,引用傳遞的是副本,不會改變原值,加ref,把實值型別按照引用傳遞,傳遞的是引用地址,會改變原值實值型別======》參考型別----------裝箱參考型別=====》值傳遞--------拆箱結構體struct的特點:實值型別資料,不用new關鍵字具有較快的資料提取速度結構中有欄位,也可以有方法(欄位不可以直接賦初始值)

深入C#.NET資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.