报错 static void Main(string[] args) { Student stu; stu.num=10

时间:2022-03-03 07:41:20

 巧记:值(无ref)+值=不乱

值(无ref)+引=变

引(有ref)+值/引=变

1.值类型和引用类型

  1.引用类型

  源于system.object家族。

    (1)类

    (2)接口:interface

    (3)数组

    (4)字符串:string:

  2.值类型

  源于system.valueType家族

  值类型数据地址的内存区域为栈。

  3.值类型:

    (1)根基数据类型{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.值类型 =============> 引用类型   (装箱)

报错 static void Main(string[] args) { Student stu; stu.num=10

     引用类型 =============> 值类型   (拆箱)

报错 static void Main(string[] args) { Student stu; stu.num=10

  2.要制止装箱和拆箱因为会减低措施性能。

4.引用方法参数通报

  (根基数据类型,如,整形,浮点型,字符型,bool行及布局属于值类型;数组,接口和类属于引用类型)

  使用值方法(不用ref修饰)通报值类型参数时,参数在要领中的改削不会保存

  使用值方法(不用ref修饰)通报引用类型参数时,参数在要领中的改削会保存

  使用引用方法(用ref修饰)通报值类型或引用类型参数时,参数在要领中的改削城市保存