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));