[英]Confused about the ? operator in c#
我想這樣做,如果subs的值不是“”,那么UL在它之前和之后進入變量sL。 如果subs是“”,則sL得到值“”
var sL = (subs != "") ? "<ul>" + subs + "</ul>" : "";
但它似乎沒有用。
我的格式是否正確?
如有疑問,請添加更多括號:
var sL = subs != "" ? ("<ul>" + subs + "</ul>") : "";
但是,您的代碼應該已經正常工作; 那句法很好。
蘇珊,你的代碼是正確的,它的工作原理。 我剛剛在LinqPad中測試過。 也許你的ss變量是null而不是空的。 我建議你將你的行改為:
var sL = !string.IsNullOrEmply(subs) ? "<ul>" + subs + "</ul>" : "";
這應該與此相同:
if (subs != "")
{
sL = "<ul>" + subs + "</ul>";
}
else
{
sL = "";
}
如果這是你的目標,那么我會在括號中包圍"<ul>" + subs + "</ul>"
,只是為了確保編譯器能夠理解你想要的東西。
我復制了你的代碼,它在我的機器上運行良好。
也許問題出在其他地方?
string.IsNullOrEmpty
,而是使用string.IsNullOrEmpty
over = ""
var sL = !string.IsNullOrEmpty(subs) ? "<ul>" + subs + "</ul>" : string.Empty;
沒人提到的另一個選擇是使用string.Concat
而不是+
,如下所示:
var sL = (subs != "") ? string.Concat("<ul>", subs, "</ul>") : "";
如果subs是“”,則sL也變為“”。 您只是使用if的簡寫變體。 你所寫的內容完全相同
string sL;
if (subs != ""){
sL = "<ul>" + subs + "</ul>";
}else{
sL = "";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.