7

私は財産を持っています:

public decimal? DejanskaKolicina { get; set; }

そしてResharperは私に示します:

文字列変換でカルチャを明示的に指定する

しかし、私が使用する場合:

DejanskaKolicina.ToString(CultureInfo.CurrentCulture) 

私はいつも次のメッセージを受け取ります:

ToString メソッドには 0 個のパラメーターがありますが、1 つの引数で呼び出されます

10 進数のプロパティを変更して null 可能にならないようにすると、機能します。ToString(CultureInfo.CurrentCulture)null 許容プロパティで使用するにはどうすればよいですか?

4

4 に答える 4

7

その特定ToStringのオーバーロードは a に対してのみ存在するため、 adecimalに対して呼び出すだけで機能させることができますdecimal

DejanskaKolicina == null ? String.Empty : DejanskaKolicina.Value.ToString(CultureInfo.CurrentCulture)
于 2012-01-30T06:49:48.033 に答える
3

null次のように、個別に処理する必要があります。

DejanskaKolicina == null ? "N/A" : DejanskaKolicina.Value.ToString(CultureInfo.CurrentCulture)  
于 2012-01-30T06:50:42.927 に答える
0

この例が役立つと思います:

null 許容型は、通常の値型と同じ方法で使用できます。実際、同じ型の null 許容変数と null 非許容変数の間の変換のために、暗黙的な変換が組み込まれています。これは、標準の整数を null 許容整数に代入したり、その逆を行ったりできることを意味します。

int? nFirst = null;
int Second = 2; nFirst = Second; // Valid
nFirst = 123; // Valid
Second = nFirst; // Also valid
nFirst = null; // Valid
Second = nFirst; // Exception, Second is nonnullable.

上記のステートメントを見ると、null 許容変数に null が含まれていない限り、null 許容変数と非 null 許容変数が値を交換できることがわかります。null が含まれている場合は、例外がスローされます。例外のスローを回避するために、nullable の HasValue プロパティを使用できます。

if (nFirst.HasValue) Second = nFirst;

ご覧のとおり、nFirst に値がある場合、代入が行われます。それ以外の場合、割り当てはスキップされます。

于 2012-01-30T06:56:15.330 に答える