文章标题

来源:互联网 发布:matlab软件做量化投资 编辑:程序博客网 时间:2024/05/16 05:38

C#中关于类型值的体会

  • 值类型

    1. 值类型变量存储在堆栈中。
    2. 访问时一般是直接访问其实例。
    3. 复制值变量时,复制的是其数据大小,而不是变量的地址。
    4. 值类型的变量不能为null,必须有一个确定的值。
  • 引用类型

    1. 必须在托管堆中为引用类型变量分配内存。
    2. 必须使用new关键字来创建引用类型变量。
    3. new创建的对象内部成员必须被初始化。
    4. 引用类型的变量是由垃圾回收机制来管理的。

引用类型可以理解为C语言中的指针,存放在栈内。new创建的对象实例,存放在堆区,这时候在堆内部的首地址赋值给引用类型变量(栈区)。
例如:

class program
{
class example
{
public int Value = 0;
}
static void Main(string[] args)
{
example myex = new example();
myex.Value = 1;
example test = myex;
Console.WriteLine(“Values:{0},{1}”,myex.Value,test.Value);
Console.ReadLine();
}
}

输出结果 Values:1,1
即引用变量(指针)指向同一个堆空间单元,也就是为什么不需要为test分配存储空间,因为栈空间是编辑器在编译时候自动分配的。

原创粉丝点击