首页 > Windows开发 > 详细

深入C#数据类型

时间:2018-01-01 11:09:20      阅读:272      评论:0      收藏:0      [点我收藏+]
 巧记:值(无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.值类型 =============> 引用类型   (装箱)

技术分享图片

 

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

技术分享图片

 

  2.要避免装箱和拆箱因为会减低程序性能。

4.引用方式参数传递

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

  使用值方式(不用ref修饰)传递值类型参数时,参数在方法中的修改不会保留

  使用值方式(不用ref修饰)传递引用类型参数时,参数在方法中的修改会保留

  使用引用方式(用ref修饰)传递值类型或引用类型参数时,参数在方法中的修改都会保留

深入C#数据类型

原文:https://www.cnblogs.com/liehuonanjue/p/8166067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!