关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

深入C#数据类型

发布时间:2020-08-06 11:03:47


(1)值类型和引用类型

        值类型:是在栈上存储真实的值    引用类型:在栈和堆上都开辟空间

        值类型:int  double float boolean  char byte long short  枚举(enum)  结构体(struct)

       引用类型:int[] class 接口(interface) string

    (2)结构

       定义:

         


访问修饰符  struct  结构名


{


            // 结构体 }





例:public struct Student

{

      //结构体

}


 

   (2)注意点:

       1.在结构中可以有字段和方法

       2.定义结构时,结构中的字段不能被赋初值

       3.可以不用new,直接定义结构的对象即可

       4.声明结构的对象后,必须给结构的成员赋初值

       5.结构体也是一种特殊的值类型

   (3)装箱和拆箱

        将值类型转换为引用类型的过程称为装箱,反之称为拆箱

       示例:

        


static void Main(String[] args)

{

    int i=123;

    oject o=i;  //装箱

    i=456;   //改变i的内容

   Console.WriteLine("值类型的值:{0}",i); 

   Console.WriteLine("引用类型的值:{0}",o); 

}


   (4)不同类型的参数传递

         值方式参数传递:传递数据类型是值类型,没有ref在方法中不会保留

                               传递数据类型是引用类型,没有ref在方法中会永久保留

         引用方式传递:不管有没有ref都会永久保留

    


例:

 class Voter

{

   public void Vote(SE se)

   {

      //人气值+1

      se.Popularity++;

    }

}

/测试相关代码


SE  zhang=new SE();

zhang.Age=25;

zhang.Name="张梅";

zhang.Gender=Gender.female;

zhang.Popularity=10;//投票前MessageBox.Show(zhang.SayHi());

Voter voter=new Voter();

voter.Vote(zhang);  //引用类型做参数//投票后MessageBox.Show(zhang.SayHi());

   


   (5)结构和类的区别

         1.结构是值类型而类是引用类型

         2.结构和另外一个结构不能继承和被继承

         3.结构没有默认构造而类有

         4.结构体没有析构函数而类有

         5.结构体可以不使用new初始化,而类不可以



/template/Home/Zkeys/PC/Static