[英]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.