如何將以下代碼轉換爲使用?:運算符。是否可能?如何使用?:運算符
tbtotalamount.Text = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
if (tbtotalamount.Text.Length == 0)
{
tbtotalamount.Text = "0";
}
如何將以下代碼轉換爲使用?:運算符。是否可能?如何使用?:運算符
tbtotalamount.Text = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
if (tbtotalamount.Text.Length == 0)
{
tbtotalamount.Text = "0";
}
的引用代碼將無法使用該? :
運營商,這就是所謂的conditional operator(有時被稱爲「三元運算符」雖然技術上受益,這只是一個三元運算 —例如,有三個運算操作)。
通常情況下,當你有一個變量並且想根據一個條件給它分配兩個值中的一個時,條件運算符是很方便的。因此,在這種形式的代碼:
if (someCondition) {
a = "one value";
}
else {
a = "a different value";
}
可以改寫
a = someCondition ? "one value" : "a different value";
在你的情況,但是,你不知道tbtotalamount.Text
是空白的,直到後你做了string.Format
,所以你」最好還是留下if
。
是的。具體方法如下:
string test = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
tbttotalamount.Text = test.length == 0 ? "0" : test;
對不起看到這麼多downvotes,我不熟悉? (三元)運營商很長一段時間。我認爲這非常方便。
它的左邊是你的測試表達式,在評估之後它應該是一個布爾值。右側是操作員返回的內容:如果爲true,則會將值返回到:
的左側。如果爲false,則值爲右側。請注意,整個表達式會返回一些內容,編譯器需要您對它做些什麼。您不能使用三元操作來替換調用返回類型爲void
的函數的if-else語句。
我的意思說的是,有很多人誰之前(像我)從來沒有使用過它似乎認爲,這是一個純粹的如果其他替代品,它是不。
http://msdn.microsoft.com/en-us/library/ty67wk28.aspx – zerkms