我有这段代码:
if (!codeText.StartsWith("<p>"))
{
codeText = string.Concat("<p>", codeText, "</p>");
}
如何使用?:
运算符?
答案 0 :(得分:4)
由于条件运算符需要else
子句,您需要告诉它使用原始值:
codeText = codeText.StartsWith("<p>") ? codeText : "<p>" + codeText + "</p>";
然而,这样做是没有意义的;这更令人困惑。
答案 1 :(得分:3)
codeText = codeText.StartsWith("<p>") ?
codeText :
string.Concat("<p>", codeText, "</p>");
答案 2 :(得分:2)
在这种情况下,使用三元运算符没有多大意义。我会坚持你现在的if语句。通常,您可以在赋值语句中使用三元运算符,或者在不能使用典型if语句的地方使用。
然而,如果你真的想,你可以这样做。
codeText = !codeText.StartsWith("<p>") ? string.Concat("<p>", codeText, "</p>") : codeText;
这是三元运算符的MSDN页面。 http://msdn.microsoft.com/en-US/library/ty67wk28%28v=VS.80%29.aspx
答案 3 :(得分:1)
变量=条件?条件为真时的值:条件为假时的值
答案 4 :(得分:0)
像这样:
codeText = codeText.StartsWith("<p>") ? codeText : string.Concat("<p>", codeText, "</p>");
如果它相当长,我通常会将它写成多行,如下所示:
codeText = codeText.StartsWith("<p>")
? codeText
: string.Concat("<p>", codeText, "</p>");
虽然我不得不承认,我没有看到在这里使用?:运算符的好处,因为你没有其他情况,你必须添加一个codeText = codeText
的运算符用它。
答案 5 :(得分:0)
codeText = (!codeText.StartsWith("<p>")?string.Concat("<p>", codeText, "</p>"):codeText);
答案 6 :(得分:0)
你可以这样做:
codeText = codeText.StartsWith("<p>")
? codetext
: string.Concat("<p>", codeText, "</p>");
但我不确定你为什么要那样做。
答案 7 :(得分:0)
/*if*/ condition
/*then*/? statement1
/*else*/: statement2
所以,基本上这是建筑:
if(condition){
//statement1
}else{
//statement2
}
可以写成:
condition
? statement1
: statement2;