2012-04-12 7 views
0

decimaldecimal?またはintint?の違いを知ってもらえますか?"10進数"と "10進数"の違いどのような場合に使用するのですか

私はいつそれらを使用するべきですか、どちらを使用するのがよいでしょうか。

+0

この[Microsoftページ](http://msdn.microsoft.com/it-it/library/2cf62fcy.aspx)を参照してください。 – Marco

+0

[DateTimeとは何か?] C#の意味ですか?](http://stackoverflow.com/questions/109859/what-does-datetime-mean-in-c) – phoog

答えて

14

データ型は? null可能な型です。彼らは、このSource linkをチェック


  • 同様のNullable型ををnull値を保持することができ、ヌルの値を割り当てることができる値型変数を表します。
    参照型に基づいて、null可能な型を作成することはできません。 (参照型はすでにnull値をサポートしています。)
  • 構文T? (C#では)System.Nullableの省略形です(Tは値型)。 2つの形式は互換性があります。
  • 例えば、通常の値型と同じ方法でnull許容型に値を割り当てる: C#:int? x = 10; or double? d = 4.108;

    VB.NET:Dim x As Nullable(Of Integer) = 10又はDim d As Nullable(Of Double) = 4.108

  • が可能System.Nullableを使用します.GetValueOrDefaultメソッドを使用して、割り当てられた値または基になる型の既定値を返します。 の値がnullの場合、たとえば

    C#:int j = x.GetValueOrDefault();

    VB.NET:Dim j as Integer = x.GetValueOrDefault()

  • nullをテストし、値を取得するhasValueはと値の読み取り専用のプロパティを使用してください。

  • HasValueプロパティは、変数に値が含まれている場合はtrueを返し、値がnullの場合はfalseを返します。
  • Valueプロパティは値が割り当てられている場合は値を返し、そうでない場合はSystem.InvalidOperationExceptionがスローされます。
  • null可能な型変数のデフォルト値は、HasValueをfalseに設定します。値は未定義です。
    C#4.0
  • その電流値がnullであるnull許容型を非null型に
    を割り当てられている場合の例
int? x = null; 
int y = x ?? -1; 
6

?後ために、適用されるデフォルト値を割り当てる(C#)演算子型はnull可能であると記述しています。 int?およびdecimal?は、Nullable<int>およびNullable<decimal>のショートハンドです。

これにより、変数の型またはnull値を保持できます。

1

?フォームは、それがnull値型であることを意味します。Nullable<decimal>またはNullable<int>のショートカットです。あなたがその変数に値が割り当てられていないことを示すことができるようにしたいときには、それを使用するのがよいでしょう。

0

DateTimeのようなものがあり、まだ値を割り当てていないことを示す場合は、1つの使用例があります。 01/01/1970のような「Magic date」に設定するのではなく、nullに設定することができます。はるかに簡単!