为什么以下条件运算符在包含可空类型的StringBuilder中工作异常?在C#中? StringBuilder htmlResp=new StringBuilder(); 智力?cuID=1; 字符串cuName=“Tom”; 字符串cuEmpID=“ZXCV”; htmlResp.Append(“+cuName+”(“+cuEmpID==”?“-”:cuEmpID+”+”); html.Resp.ToString();
我不明白为什么上面的代码(根据实际代码修改)总是给我奇怪的结果:“ZXCV”而不是“Tom(ZXCV)”为什么以下条件运算符在包含可空类型的StringBuilder中工作异常?在C#中? StringBuilder htmlResp=new StringBuilder(); 智力?cuID=1; 字符串cuName=“Tom”; 字符串cuEmpID=“ZXCV”; htmlResp.Append(“+cuName+”(“+cuEmpID==”?“-”:cuEmpID+”+”); html.Resp.ToString();,c#,.net,nullable,stringbuilder,conditional-operator,C#,.net,Nullable,Stringbuilder,Conditional Operator,我不明白为什么上面的代码(根据实际代码修改)总是给我奇怪的结果:“ZXCV”而不是“Tom(ZXCV)” 有人知道背后的原因吗?如果可能,可以提供引用吗?您的条件表达式缺少一些括号 请尝试以下方法: StringBuilder htmlResp=new StringBuilder(); int? cuID= 1; string cuName="Tom"; string cuEmpID="ZXCV"; htmlResp .Append( "<option value=\"" + cuID.
有人知道背后的原因吗?如果可能,可以提供引用吗?您的条件表达式缺少一些括号 请尝试以下方法:
StringBuilder htmlResp=new StringBuilder();
int? cuID= 1;
string cuName="Tom";
string cuEmpID="ZXCV";
htmlResp .Append( "<option value=\"" + cuID.Value + "\">" + cuName+" ("+cuEmpID==""? "-":cuEmpID+")"+ "</option>");
html.Resp.ToString();
“不要让表达式太复杂”的一个很好的例子
“”+cuName
+“(“+cuEmpID==”?“-”:cuEmpID+”)”+”;
汇编为
"<option value=\"" + cuID.Value + "\">" + cuName
+ " ("+cuEmpID==""? "-":cuEmpID+")"+ "</option>");
(“+cuName+”(“+cuEmpID)=”
? "-"
:cuEmpID+“”“+”);
一个简单的“修复”是
("<option value=\"" + cuID.Value + "\">" + cuName+" ("+cuEmpID ) == ""
? "-"
: cuEmpID+")"+ "</option>");
“+cuName+”(“
+((cuEmpID==”)?“-”:cuEmpID)
+ ")" + ""
但是为了可读性,使用一些中间变量<代码>?:不应嵌套在其他表达式中 你能给出一个期望的html和从中得到的实际html的例子吗?它也不是可为null的元素。@TomRiley我期望的是'TOM(ZXCV'),但它给了我'ZXCV'instead@HenkHolterman我的错。我已将标题更改为可空类型
string normalisedEmpID = cuEmpID == "" ? "-" : cuEmpID;
string text = string.Format
(
"<option value=\"{0}\">{1} ({2})</option>",
cuID.Value,
cuName,
normalisedEmpID
);
"<option value=\"" + cuID.Value + "\">" + cuName
+ " ("+cuEmpID==""? "-":cuEmpID+")"+ "</option>");
("<option value=\"" + cuID.Value + "\">" + cuName+" ("+cuEmpID ) == ""
? "-"
: cuEmpID+")"+ "</option>");
"<option value=\"" + cuID.Value + "\">" + cuName + " ("
+ ((cuEmpID == "") ? "-" : cuEmpID )
+ ")" + "</option>"