三元运算符; 这个语法有什么问题?

Nic*_*ndo 3 c# asp.net syntax ternary-operator

我正在尝试创建一个MailMessage,我收到以下错误...

Cannot implicitly convert type 'string' to 'bool'
Run Code Online (Sandbox Code Playgroud)

这是我的初始声明:

MailMessage msg = new MailMessage("DoNotReply@optoma.com",
                      myTbl.Rows[i]["Requester"].ToString().Trim(),
                      subject, 
                      "Dear " + myTbl.Rows[i]["Ship_Attention"].ToString() + ",<br/><br/>" +
                      body + "<br/>Your ISO ID is " + myTbl.Rows[i]["ISO_ID"].ToString() + 
                      (Convert.ToInt32(myTbl.Rows[i]["EmailType"]) == 1) ? 
                          ("<br/>Tracking Number: " + myTbl.Rows[i]["Tracking_No"].ToString()) : 
                          ("") + "<br/><br/>Please examine the loaned items for this transaction:<br/><br/>" +
                      sw.ToString());
Run Code Online (Sandbox Code Playgroud)

我试图在运行时基于布尔表达式添加到字符串.为什么我不能这样做?我做得不对吗?

string + (true | false) ? "somestring" : "anotherstring" + string
Run Code Online (Sandbox Code Playgroud)

Sam*_*ost 13

的?:运算符的优先级非常低.把它放在括号中,我想你会解决你的问题.

((true|false)?"somestring":"anotherstring")
Run Code Online (Sandbox Code Playgroud)