public MyClass(int initialCount = 0, string name = "")
请注意,他使用了""
而不是string.Empty
。他评论道:
“您会注意到(在上面的示例中)第二个构造函数在name参数的默认值上指定了“”,而不是更常用的
string.Empty
。那是因为string.Empty
不是编译时常量。它是在string类中定义的静态属性。因为它不是编译常量,所以不能将其用作参数的默认值。”如果我们无法在所有情况下使用
string.Empty
静态,则这是否会破坏其目的?我认为我们会使用它来确保我们拥有一个系统独立的引用空字符串的方法。我的理解错了吗?谢谢。更新
只是跟进一下评论。根据MSDN:
“每个可选参数都有一个默认值作为其定义的一部分。如果未为该参数发送任何参数,则使用默认值。默认值必须是常量。”
那么我们也无法使用
System.Environment.NewLine
,也不能使用新实例化的对象作为默认值。我还没有使用VS2010,这令人失望!