簡體   English   中英

C#-更有效的三元運算符

[英]C# - A more efficient ternary operator

我在編寫一個程序,其中要檢查字符串是否等於"" ,以及是否不使用它,但是如果使用,請使用默認值。 我知道我可以做string != "" ? string : "default value" string != "" ? string : "default value" ,但是,由於我不斷鍵入string ,因此我覺得這效率很低。 當然,寫出一個string對我來說沒有問題,但是,如果在另一個項目中,我必須引用一個帶有長包名的字符串,那會有些煩人。

目前,沒有操作員可以執行您想要的操作。

但實際上,這里有一個“默認或空的合並運算符”的建議:

https://github.com/dotnet/csharplang/issues/183

目前您能做的最好的就是聲明一個擴展方法,如下所示:

    public static string NullIfEmpty(this string str)
    {
        return string.IsNullOrEmpty(str) ? null : str;
    }

並像這樣使用它:

var foo = yourString.NullIfEmpty() ?? "default value";

根據DavidG的選項和有用的鏈接,您可以使用此擴展功能。

public static string IfEmpty(this string str, string alternate)
{
    return str?.Length == 0 ? str : alternate;
}

(即使'str'為null,這也會返回備用字符串)

並用作mystring.IfEmpty("something else")

來源: String.Empty和“”(空字符串)有什么區別?

另外,您不需要引用很長的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM