码迷,mamicode.com
首页 > Windows程序 > 详细

C#基本语法复习-理解值和引用

时间:2015-04-02 18:50:00      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

复制值类型的变量和类:

  除了string类型为引用类型外,C#的大多数基本数据类型都是值类型。

  值类型复制时,会产生一个副本,对副本的修改不会对原值产生影响,而对于引用类型,对象只有一个是存储在堆上的,复制时只是将其引用进行复制,应用中包含了该对象的一个地址。

理解null值和可空类型:

  可以将null赋值给引用变量。

使用可空类型:

  null为一个引用不能将其赋给值类型,但是可以将一个变量声明为可空的值类型,int? i=null;

理解可空类型的属性:

  hasvalue属性指出一个可空类型是包含一个真正的值,还是一个包含null,通过value属性可以获得值。

使用ref与out操作:

  为了实现形参修改实参。

创建ref参数:

  如果为一个参数附加了ref关键字作为前缀,该参数就会成为实参的一个别名,而不是一个副本,想一个ref参数传递一个实参时,实参也必须附加ref关键字作为前缀,格式如:

  void a(ref int a)

  {a++;}

  void b()

  {int arg=42;

  a(ref arg);}

  变量使用前必须赋值;

 

创建out参数:

  out参数可由方法本身来初始化参数,在方法体中对实参进行初始化;

计算机的内存组织方式:

  操作系统和运行时通常将用于容纳数据的内存分为两个独立的区域,每个区域都采用不同的方式进行管理,这两个区域就称为栈和堆;

  调用一个方法时,它的参数以及它的局部变量需要的内存总是从栈中获取,方法结束后,为参数和局部变量分配的内存将自动归还给栈

  使用new关键字来创建一个对象时,构造对象所需的内存总是从堆中获取的;

system.object类:

  为所有类的一个基类;

装箱:

  用object引用一个值类型如下:

  int i=32;

  object o=i;

  运行时在堆中分配一小片内存,然后i中的值的一个副本被复制到再片内存中,最后让o引用这个副本,这种将一个数据从栈自动复制到堆中的行为叫做装箱;

拆箱:

  对已装箱的值进行前值类型转换

数据类型的安全转换:

  is与as 操作符 is o is 类型 返回值是一个bool类型的值,as操作符则在判断的同时如果成功则直接返回该类型,失败则为null

  

C#基本语法复习-理解值和引用

标签:

原文地址:http://www.cnblogs.com/hanshuidecangsanggan/p/4387521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!