decimal
への変換を使用して、バイト単位で格納されたいずれかまたは他の数値byte array
が含まれるようにします。null
ここでの問題は、 anull
をに変換しようとするとNullable decimal
、 に変換されることzero
です。残ってほしいnull
…
Convert.ToDecimal(obj.sal== null ? null : System.Text.Encoding.ASCII.GetString(obj.sal))
decimal
への変換を使用して、バイト単位で格納されたいずれかまたは他の数値byte array
が含まれるようにします。null
ここでの問題は、 anull
をに変換しようとするとNullable decimal
、 に変換されることzero
です。残ってほしいnull
…
Convert.ToDecimal(obj.sal== null ? null : System.Text.Encoding.ASCII.GetString(obj.sal))
結果が潜在的に null になるようにしたい場合は、呼び出してはいけませんConvert.ToDecimal
- これは常に を返しますdecimal
。代わりに、次を使用する必要があります。
x = obj.sal == null ? (decimal?) null
: Convert.ToDecimal(Encoding.ASCII.GetString(obj.sal));
null
リテラルをキャストする必要があることに注意してください。または、2 番目のオペランドの型が次のようになるdecimal?
ように他の形式を使用する必要があります。そうしないと、コンパイラは条件式の型を推測できません。詳細については、この質問を参照してください。default(decimal?)
decimal?
null はオブジェクト型 (事実上型なし) であり、型付きオブジェクトに割り当てる必要があるためです。
x = obj.sal == null ? (decimal?) null
: Convert.ToDecimal(Encoding.ASCII.GetString(obj.sal));