深入c#資料類型

來源:互聯網
上載者:User

標籤:span   影響   ref   bsp   保留   height   訪問   依據   空間   

資料類型按儲存方式可分為兩類:實值型別和參考型別.

1實值型別

實值型別源於System.ValueType家族,每個實值型別的對象都有一個獨立的記憶體地區用於儲存自己的值,

實值型別資料所在的記憶體地區成為棧(Stack),只要代碼中修改它,就會在它的地區內儲存這個值,實值型別主要包括基礎資料型別 (Elementary Data Type)和枚舉類型等.

對於實值型別,不同的變數會分配不同的儲存空間,並且儲存空間中儲存的是該變數的值,賦值操作傳遞的是變數的值,改變一個變數的值不會影響另一個變數的值.

2.參考型別

參考型別源於System.Object家族,在C#中參考型別主要包括數組,類和介面等.

對於參考型別,賦值是把原對象的引用傳遞給另一個引用,對數組而言,當一個數組引用賦值給另一個數組引用後,這兩個引用指向同一個數組,也就是指向同一塊

儲存空間.

 

細分實值型別和參考型別

實值型別:1. 基礎資料型別 (Elementary Data Type)  2.枚舉類型   3.結構類型  

參考型別: 1.類   2.介面   3.數組  

 

結構

1.結構的定義   

存取修飾詞   struct  結構名

{

     //結構體

結構的定義有以下特點:

1.結構中可以有欄位,也可以有方法

2.定義時,結構中的欄位不能被賦初值

 

結構的使用

1.可以不用new

2.聲明結構的對象後,必須給結構的成員賦初值.

 

裝箱和拆箱

1 int i = 123;2 object o = i;      //裝箱:實值型別轉換為參考型別3 int j=(int)o;     //拆箱:參考型別轉換為實值型別

 不同類型的參數傳遞

1.怎樣區分是值傳遞還是引用傳遞?

判斷依據是有沒有ref.

2.使用值方式(不用ref修飾)傳遞實值型別參數時,參數在方法中的修改不會保留.

  使用值方式(不用ref修飾)傳遞參考型別參數時,參數在方法中的修改會保留

  使用引用方式(用ref修飾)傳遞實值型別或參考型別參數時,參數在方法中的修改都會保留

 

深入c#資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.