【发布时间】:2019-07-04 03:53:59
【问题描述】:
我正在尝试定义一个新的子例程,它将字典作为可选参数,默认值为空字典以及两个非可选字符串。
public void findPath(string start, string end,
Dictionary<string, object[]> nodeInfo = new Dictionary<string, object[]>())
{}
在传递“'nodeInfo' 的默认参数值大多数是编译时常量”的字典时,我不断收到错误消息。我该如何解决?谢谢
【问题讨论】:
-
据我所知,这是 C# 的限制。您可以尝试通过将参数默认为
null并使用 ??运算符或空检查,请参阅this question this seems to be a duplicate of -
来自here: "常量可以是数字、布尔值、字符串或空引用。 不要创建常量来表示您希望更改的信息随时。例如,不要使用常量字段来存储服务的价格、产品版本号或公司的品牌名称。这些值会随着时间而改变,并且因为编译器会传播常量,所以必须重新编译使用您的库编译的其他代码才能看到更改。”