C# 对这个问题感到困惑吗?c中的运算符#

C# 对这个问题感到困惑吗?c中的运算符#,c#,C#,我想这样做,如果subs的值不是“”,那么ULs在它之前和之后进入变量sL。如果subs是“”,那么sL得到值 var sL=(subs!=“”)?“”+subs+”“:”; 但它似乎不起作用 我的格式正确吗?如有疑问,请添加更多括号: var sL = subs != "" ? ("<ul>" + subs + "</ul>") : ""; var sL=subs!="" ? (“”+subs+“”):; 但是,您的代码应该已经可以正常工作了;这种语法很好。这应该

我想这样做,如果subs的值不是“”,那么ULs在它之前和之后进入变量sL。如果subs是“”,那么sL得到值

var sL=(subs!=“”)?“
    ”+subs+”
“:”;
但它似乎不起作用


我的格式正确吗?

如有疑问,请添加更多括号:

var sL = subs != "" ? ("<ul>" + subs + "</ul>") : "";
var sL=subs!="" ? (“
    ”+subs+“
”):;

但是,您的代码应该已经可以正常工作了;这种语法很好。

这应该与此相同:

if (subs != "")
{
    sL = "<ul>" + subs + "</ul>";
}
else
{
    sL = "";
}
if(subs!=“”)
{
sL=“
    ”+subs+”
”; } 其他的 { sL=“”; }
如果这是您的目标,那么我会将
    ”+subs+“
括在括号中,以确保编译器理解您想要的内容。

如果subs是“”,那么sL也会变成“”。您只是在使用if的一个速记变体。你写的和我写的完全一样

string sL;
if (subs != ""){
  sL = "<ul>" + subs + "</ul>";
}else{
  sL = "";
}
stringsl;
如果(subs!=“”){
sL=“
    ”+subs+”
”; }否则{ sL=“”; }
Susan,你的代码是正确的,可以正常工作。我刚在林帕德测试过。 也许您的ss变量为null,而不是空的。我建议您将线路改为:

var sL = !string.IsNullOrEmply(subs) ? "<ul>" + subs + "</ul>" : "";
var sL=!string.IsNullOrEmply(subs)?“
    ”+subs+”
“:”;
我复制了你的代码,它在我的机器上运行良好

也许问题出在别的地方

作为旁白,使用
string.IsNullOrEmpty
over
=”

var sL=!string.IsNullOrEmpty(subs)?“
    ”+subs+“
”:string.Empty;
另一个没有人提到的选项是使用而不是
+
,如下所示:

var sL = (subs != "") ? string.Concat("<ul>", subs, "</ul>") : "";
var sL=(subs!=“”)?string.Concat(“
    ”,subs“
”):;
“它似乎不起作用”很少是对您看到的行为的有用描述。请提供更多详细信息。+1表示同一行中的大括号:)/edit:Wait,这不符合您的帖子要求。如果这是合法的,我会的!;)
var sL = !string.IsNullOrEmpty(subs) ? "<ul>" + subs + "</ul>" : string.Empty;
var sL = (subs != "") ? string.Concat("<ul>", subs, "</ul>") : "";