关于null与声明变量未赋值
如题 string a=null 表示没有为a这个变量分配内存空间吗?string b b未赋值 那它又是一个什么样的状态呢? --------------------编程问答-------------------- string a = null;
和
string a;
是一样的。
指向一个空引用 --------------------编程问答-------------------- string a;
if (a==null)
{}
上面这段话不行,会提示a未赋值。
string a和string a=null会一样? --------------------编程问答-------------------- 提示a未赋值。是编译器检查。
要分清楚运行期间和编译期间。 --------------------编程问答-------------------- 小弟菜。。能通俗的说下运行期间和编译期间是怎么回事吗,麻烦了 --------------------编程问答-------------------- string a=null 给a分配了空间,空间里的内容是空的;
string a 给a分配空间,空间里的内容是随机的,有内容,a的值是随机的,编译系统为了避免出错,所以给出警告提示。
你可以用F10分步执行,看a的值。 --------------------编程问答-------------------- f10分步执行是怎么操作的 --------------------编程问答-------------------- 在程序就绪的状态下按F10编译,按一下F10就执行一步,执行到string a的时候把光标放到a上,就会显示它的值。 --------------------编程问答-------------------- string str="",表示一个空串,被实列化了,占用了内存空间,
string str=null,表示一个空引用,并没有指向任何地方,没有占用了空间,
string str 或string.empty.因为C#里边你不初始化的话会有一个默认值。 --------------------编程问答--------------------
6L的意思是让你执行程序,在出错的地方设置断点看看这个值,也就是if (a==null)设置断点 --------------------编程问答-------------------- 引用类型就是指针! --------------------编程问答-------------------- 过来看下。 --------------------编程问答-------------------- 是那样的吗?if (a==null)应改为:if(ReferenceEquals(a,null))
--------------------编程问答--------------------
所谓状态,指的是运行到这里的状态
如果未通过编译,根本不可能运行,哪里来的什么状态?
补充:.NET技术 , C#