标签:
1、string是一个应用类型,而不是值类型;为什么用起来很像值类型?因为微软对其做了特殊处理。
2、
1 using System; 2 3 namespace testForString 4 { 5 class Program 6 { 7 class Abc 8 { 9 public string A { get; set; } 10 11 public DateTime D { get; set; } 12 } 13 14 static void Main(string[] args) 15 { 16 Abc abc = new Abc(); 17 18 19 string str = null + "acb"; 20 21 Console.ReadKey(); 22 } 23 } 24 }
以上代码中abc变量中abc.A为null,abc.D不是空而是1年1月1日0点0分0秒000。
string str = null + "acb";
代码并没有抛出异常。而是str被赋值为“abc”
3、如果是这样的一句话,
string str;
string abc=str+null;
运行时,会编译不通过.
4、运行以下代码:
1 string str=null; 2 3 string abc=str+null; 4 5 Console.WriteLine(abc.toString());
不会抛出任何一个异常,在第二行中abc已经被赋值为“”。
5.运行以下一段代码:
1 using System; 2 3 namespace testForString 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 string str = null; 10 11 Console.WriteLine(str.ToString()); 12 13 Console.ReadKey(); 14 } 15 } 16 }
将会抛出错误:System.NullReferenceException。
能完全答对的举手!!!
标签:
原文地址:http://www.cnblogs.com/yy3b2007com/p/5565652.html