摘要:
对于申明的一个值或引用类型的变量在内存中,是创建到堆还是栈上,经常看到的说法是: 1. 值类型创建在栈上 2. 引用类型创建在堆上 对于上述的说法其实不完备。这里要注意的是分清楚什么是变量,什么是变量的值。 实际上对于申明的变量如何分配内存还要依赖申明的变量所在的上下文环境,具体来说,有以下几个规则: 1. 每个局部变量(包括方法内部申明的) 都在栈上创建,包括引用类型的变量(仅仅是... 阅读全文
摘要:
C#中string类型是一个比较特别的类型,它是一种引用类型,但在使用中,它表现的像一个值类型一样。这是因为string是不可变的(immutable)。 string具有以下的一些特性: 1. string是一个字符序列,是String类的一个别名,别且它是一个关键字。 2. string是引用类型,每个string实例是一个常量,是不可变的,因此对一个string进行修改时,实际上都是创... 阅读全文