null
一个经典的问题,字符串的“”和null有什么区别。
string s = null;
string s2 = "";
Console.WriteLine(s);
Console.WriteLine(s2);
虽然看起来,他们都没有储存实际数据。
区别在于,“”相当于买了0个月饼。别人发了个空盒子过来。
虽然没有月饼吃,但是有一个购买记录,凭借这个订单号可能还能抽个奖什么的。
而null自始没有买东西,查不到购买记录,不能参与抽奖。
具体而言,“”仍然可以访问他的内容。
而null一旦访问他的内容,就会报错。
可空注释的上下文
由于null一直以来都是报错大户,为了限制这个问题,VS加入了新的检测机制。
但是这种检测机制不能保证正确,看着又烦,所以如果不想要的话可以关掉。
在解决方案管理器中双击你的项目
找到这一行文字
将enable改成disabel即可关闭。
可空类型
如果你的可空注释是开启的,那么你会看到你的变量当前可能为null的提示。
如果你觉的这个变量就是可以为null的,不需要检测,可以在类型后面加问号。这样就不会检测他了。
空容忍
即便类型加了问号,如果识图访问他的内容,那么在VS觉得他是null的情况下仍然会警告。
如果不想看见警告,可以在点前面加感叹号。这样提示就不会出现。