【发布时间】:2010-11-07 08:04:58
【问题描述】:
字符串是值类型还是引用类型?
我只是找不到一个“好的”解释......
【问题讨论】:
-
接受的答案“证明”它是一个引用类型。与其他引用类型不同,它在以下评估时不会抛出
NullReferenceException:string s0 = null; Console.WriteLine(s0); string result = String.Concat(s0, "aaa");也许它只是不完全适合公认的类别。 -
@H2ONaCl 不期望在这些情况下抛出该异常;方法可以选择抛出
ArgumentNullException,但两种方法明确表示它们不选择这样做;Console.WriteLine说:“如果 value 为 null,则仅将行终止符写入标准输出流。”;String.Concat表示“使用空字符串代替任何空参数。”。这很好。我们通常期望NullReferenceException的唯一时间是s0.Length之类的东西:确实,抛出了
标签: .net string reference types