深刻C#數據類型

 

1.值類型和引用類型
1)值類型:源於system.valueType家族數組

值類型數據所在的內存區域爲棧。性能

2)引用類型源於system.object家族。spa

3)值類型:(1)基本數據類型{int,long,double,byte~~~~}3d

      (2)枚舉:enumblog

      (3)結構體:struct接口

 

   引用類型:(1)類內存

      (2)接口:interface字符串

      (3)數組string

      (4)字符串:string變量

2.結構體

1)定義:

訪問修飾符  struct   結構名

{

          //結構體

}

(1)結構體能夠有字段,方法,字段不能賦初始值。

(2)能夠不new,但有條件,結構體中有成員變量和成員方法,成員變量沒有賦值,調用成員方法,不new會報錯,因此通常先new。

例如:

public struct Student

{

  public int num;

  public void  show()

  {

  }

}

部分略     Main()

{

    Student stu;

    stu.num;

     stu.show();  //沒有給成員變量賦值,報錯

}

部分略     Main()

{

    Student stu;

    stu.num=10;

     stu.show();  //給成員變量賦值,不報錯

}

部分略     Main()

{

    Student stu=new Student();

    stu.num;

     stu.show();  //new,不報錯

3.裝箱和拆箱 

1)值類型 =============> 引用類型   (裝箱)

反之   (拆箱)

2)要避免裝箱和拆箱由於會減低程序性能。

 

4.值傳遞和引用傳遞


值傳遞:1 值類型(值不會改變) 2 引用類型(值會改變)

引用傳遞:3 ref 值類型(值會改變)4 ref 引用類型(值會改變)

相關文章
相關標籤/搜索