C# コードの行でいくつかの問題が発生しています。データベースで最終顧客の価格を取得しようとしています。null 許容の 10 進数なので、入力されていない場合は 0 を使用します。
誰かがこのコード行を見て、これが機能しない理由を説明してもらえますか?
これは特定の行です:
Decimal totalPrice = requestedPrice.EndCustomerAmount.HasValue ? requestedPrice.EndCustomerAmount.Value : 0;
問題は、価格によっては、EndCustomerAmount に値がある場合でも totalPrice が 0 になることです。
コードをデバッグし、即時ウィンドウで if ステートメントを実行すると、正しい値が返されます。即時ウィンドウで値を割り当てても、totalPrice 変数は正しい金額を保持します。
問題を解決するために次の行を試しましたが、うまくいきませんでした:
Decimal totalPrice = requestedPrice.EndCustomerAmount ?? 0;
この:
Decimal totalPrice = requestedPrice.EndCustomerAmount ?? 0m;
この:
Decimal totalPrice = 0
totalPrice = requestedPrice.EndCustomerAmount.HasValue ? requestedPrice.EndCustomerAmount.Value : 0;
うまくいくように見えるのはこれです:
Decimal totalPrice = 0
if(requestedPrice.EndCustomerAmount.HasValue)
totalPrice = requestedPrice.EndCustomerAmount
またはこれ:
Decimal? totalPrice = requestedPrice.EndCustomerAmount.HasValue ? requestedPrice.EndCustomerAmount.Value : 0;
ありがとう!