如何告诉一个方法使用其可选参数的默认值?

发布于 2025-01-11 04:04:33 字数 624 浏览 0 评论 0原文

考虑以下方法

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻风 2025-01-18 04:04:33

您可以在目标方法中处理默认值。

private void PrintThis(string xxx, string text = default)
{
    Trace(text ?? "MARY");
}  

调用者无需担心默认值:

PrintThis(xxx:"whatever", text: (string)myArray.ElementAtOrDefault(index: 5))

You can handle the default values in the target method.

private void PrintThis(string xxx, string text = default)
{
    Trace(text ?? "MARY");
}  

And the callers need not worry about the default value:

PrintThis(xxx:"whatever", text: (string)myArray.ElementAtOrDefault(index: 5))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文