深入C#資料類型

來源:互聯網
上載者:User

標籤:分享圖片   void   基本   oid   介面   toolbar   ati   new   ref   

 巧記:值(無ref)+值=不變值(無ref)+引=變引(有ref)+值/引=變1.實值型別和參考型別

  1.參考型別

  源於system.object家族。

    (1)類

    (2)介面:interface

    (3)數組

    (4)字串:string:

  2.實值型別

  源於system.valueType家族

  實值型別資料所在的記憶體地區為棧。

 

  3.實值型別:

    (1)基礎資料型別 (Elementary Data Type){int,long,double,byte~~~~}

    (2)枚舉:enum

    (3)結構體:struct

2.結構體

  1.定義:

  存取修飾詞  struct   結構名

  {

            //結構體

  }

  (1)結構體可以有欄位,方法,欄位不能賦初始值。

  (2)可以不new,但有條件,結構體中有成員變數和成員方法,成員變數沒有賦值,調用成員方法,不new會報錯,所以一般先new。

  例如:

public struct Student{  public int num;  public void  show()  {//代碼  }}

 

  

static void Main(string[] args)  {      Student stu;      stu.num;       stu.show();    }  //沒有給成員變數賦值,報錯

 

 

  

static void Main(string[] args)  {      Student stu;      stu.num=10;       stu.show();    }  //給成員變數賦值,不報錯

 

  

static void Main(string[] args)  {      Student stu=new Student();      stu.num;       stu.show();   }    //new出來,不報錯

 

 

3.裝箱和拆箱 

  提示:盡量減少裝箱和拆箱,因為他們會消耗程式的效能。

  1.實值型別 =============> 參考型別   (裝箱)

 

     參考型別 =============> 實值型別   (拆箱)

 

  2.要避免裝箱和拆箱因為會減低程式效能。

4.引用方式參數傳遞

  (基礎資料型別 (Elementary Data Type),如,整形,浮點型,字元型,bool行及結構屬於實值型別;數組,介面和類屬於參考型別)

  使用值方式(不用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.