2013-04-09 123 views
0
public class Invoice 
    { 
     public decimal Amount { get; set; } 
    } 

我知道中號是十進制值聲明類屬性爲十進制

public class Invoices 
    { 
     public void IdentityTest() 
     { 
      Invoice firstInvoice = new Invoice(); 
      firstInvoice.Amount = 0.0M; 
     }  
    } 

後綴什麼是聲明類屬性爲十進制點時,你必須使用M上有值你期望是十進制的?

+0

你來聲明一個String場同樣的原因,然後在一個字符串存儲而不是說,一個整數?隱式轉換在這裏節省了一天的時間(在這種情況下),我希望編譯器能夠解決問題,但是原理依然成立。 – spender 2013-04-09 12:31:59

+0

@spender感謝您的解釋。 – 2013-04-09 12:38:07

回答

2

您需要告訴編譯器文字的類型 - 推斷它是不安全的,因爲您可能想要使用文字的默認類型(在這種情況下爲double)。

如果兩者之間存在隱式轉換,這將工作,但如果沒有,則需要另外指定轉換/轉換。

+0

這是OP的例子中的System.Double。 – ken2k 2013-04-09 12:32:19

+0

@ ken2k - 夠正確。添加回答。 – Oded 2013-04-09 12:32:56

+0

現在更清楚了..謝謝你的答案。 – 2013-04-09 12:38:33

0

如果您不使用後綴M那麼文字將被視爲雙倍。假設你不想要double,這可能會導致編譯器錯誤。