深入C#数据类型

1.值类型和引用类型
1)值类型:源于system.valueType家族

值类型数据所在的内存区域为栈。

2)引用类型源于system.object家族。

3)值类型:(1)基本数据类型{int,long,double,byte~~~~}

      (2)枚举:enum

      (3)结构体:struct

   引用类型:(1)类

      (2)接口:interface

      (3)数组

      (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 引用类型(值会改变)

原文地址:https://www.cnblogs.com/huanghui-1243/p/8157353.html