string 的默认初始值问题
今天偶然想到个很奇怪的问题,上VS一演,果真如此。string s;
MessageBox.Show(s);
会报一个使用未赋值变量的错误。
我们再拉一个文本框,textBox1.Text上来,也是未做任何改变的
string s;
MessageBox.Show(textBox1.Text);
在string s;这里打一个断点监控,然后运行程序, 可以发现,s里面检测到的值是null,可见字符串的初始值就是null
而MessageBox.Show显示的内容是一个空白对话框,监视textBox1.Text的值是"";那么文本框就是有初值的变量,初值是""
最后一个问题,改代码如下
string s = null;
MessageBox.Show(s);
这个时候运行程序,可以发现程序能够运行,显示的是空白对话框,
[bo]那么问题出来了,为什么s初始的默认值null不能对其进行显示,但是手工赋值null就可以显示了,介个。。。是为什么呢?[/bo]