【发布时间】:2014-07-31 10:46:42
【问题描述】:
我都读过
Optional parameters "must be a compile-time constant"
和
Default parameter for value must be a compile time constant?
但这一直没有编译声明,将Empty标记为非常量。
public class MyClass
{
private const string Empty = string.Empty;
private string WriteFailedList(string prefix = Empty, DeployResponse Ret)
{
StringBuilder sb = new StringBuilder();
var errorItems = Ret.Items.TakeWhile(item => item.Status == DeployItem.ItemStatus.Error);
foreach (var item in errorItems)
sb.AppendLine(string.Format("{0} {1}",prefix,item.Filename));
return sb.ToString();
}
}
@Edit:来自 Jon Skeet 的代码良好实践建议。
【问题讨论】:
-
该代码没有给我那个错误 - 它给了我“可选参数必须出现在所有必需参数之后”。
-
不好意思,我去看看它会不会消失。
标签: c# constants optional-parameters