簡體   English   中英

對此感到困惑? c#中的運算符

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

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