1

私はこれがばかげた質問であることを知っています.私はASP.Net MVC 4を自分で勉強しようとしていますが、最近疑問に遭遇しました.MVCを勉強するために使用しているチュートリアルでは、MVCモデルの作成に次のコードが含まれていることが示されています.

public decimal? cost{get;set;}

なぜ彼らが入れたのだろうか?チュートリアルでは、なぜ彼らがそれを入れたのか説明していませんでした。コードで。だから私の質問は、10進数と10進数の違いは何ですか?

4

4 に答える 4

4

decimal?null値を持つことができます

値をdecimal持つことはできませんがnull、常に値を持つ必要があります

http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspxの null 許容型の詳細

次の例を見てください

decimal? foo = null; // value is null
foo = 5.5M;  // value is 5.5
foo = null; // value is null again

null を許容しない型でこの動作を行うことはできません

decimal foo = null; // produces compiler error, Cannot convert null to 'decimal'
于 2013-06-24T07:39:50.977 に答える
1

VS 2005 では、次のような "Nullable" という名前の新しい型を導入しています (実際にはこれよりも複雑ですが、例を単純にしたいと思います)。

struct Nullable<T>
{
    public bool HasValue;
    public T Value;
} 

この構造体は直接使用できますが、結果のコードをより簡潔にするために、いくつかのショートカット構文も追加しました。1 つ目は、null 許容型を宣言するための新しい構文の導入です。次のように入力する代わりに:

Nullable<int> x = new Nullable<int>(125); I can write:

int? x = 125;

ここでこれを詳しく読むことができます

于 2013-06-24T07:49:50.003 に答える
0

小数?つまり、値をまったく持たない可能性があります (0 以外の null)。たとえば、これをクライアントに渡して、「0」ではなく「データなし」というテキストを表示できます。

于 2013-06-24T07:40:23.403 に答える
0

decimal は値型です。疑問符を追加すると、Nullable になります。 http://msdn.microsoft.com/en-us/library/1t3y8s4s%28VS.80%29.aspx

于 2013-06-24T07:40:59.117 に答える