如何告诉一个方法使用其可选参数的默认值?
考虑以下方法
private void PrintThis(string xxx, string text = "MARY")
{
Trace(text); // MARY
}
并假设我这样使用它:
PrintThis(xxx:"whatever", text: (string)myArray.ElementAtOrDefault(index: 5) ?? default)
那么如果 myArray 超出索引 5 (string)myArray.ElementAtOrDefault(index: 5) 处的界限? default
成为 string 的默认值(空字符串)。
假设有一种方法,我怎样才能做到如果 (string)myArray.ElementAtOrDefault(index: 5)
返回 null
那么可选参数的默认值为使用(本例中为"MARY"
)而不修改方法来检查参数是否为默认值,然后将"MARY"
分配给它(例如if (文本==默认)文本=“玛丽”
)?
Consider the following method
private void PrintThis(string xxx, string text = "MARY")
{
Trace(text); // MARY
}
and assuming I use it as such:
PrintThis(xxx:"whatever", text: (string)myArray.ElementAtOrDefault(index: 5) ?? default)
then if the myArray is outside of bounds at index 5 (string)myArray.ElementAtOrDefault(index: 5) ?? default
becomes the default value of string (an empty string).
Assuming there is a way, how could I make it so that if (string)myArray.ElementAtOrDefault(index: 5)
returns null
then the default value of the optional parameter is used ("MARY"
in this case) without modifying the method to check if the parameter is the default value and then assign "MARY"
to it (like if(text ==default)text="MARY"
)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在目标方法中处理默认值。
调用者无需担心默认值:
You can handle the default values in the target method.
And the callers need not worry about the default value: