我正在优化我的代码,注意到有些地方的可选参数默认值是空字符串。我将其更改为来自类的默认空字符串值,但是你猜怎么着!显然,空引号和string.Empty
之间存在差异。真是让人惊奇!(故意打错字)
private void Khaboom(String parameter = "") { ... }
private void Bazinga(String parameter = String.Empty) { ... }
有人能解释一下为什么 Khaboom
能运行而 Bazinga
却不能吗?!
错误信息如下:
"parameter" 的默认参数值必须是编译时常量。
但是,它就是编译时常量啊!