ベストプラクティスの解決策が私の現在の状況に与えられるのはどうか不思議でした。 ARGB整数形式で色を格納するデータベースがありますが、色を指定する必要がない場合があるので、null可能にすることができます。 Entity Frameworkを使用して、私は期待どおりに返され、intにその列にアクセスするためのColorArgbプロパティを持つ生成されたクラスを持っています。また、System.Drawing.Colorオブジェクトを返す別のプロパティColorを手動で追加しました。私は生成されたクラスともっと自然なやり方でやりとりすることができるので、Colorプロパティはちょっとしたことです。設定は次のように簡単です。nullの可能性があるintが指定されたときにColor.FromArgbを返すためのベストプラクティスC#
ColorArgb = value.ToArgb();
ただし、取得はもう少し面白いです。あなたが見ることができるように、私は色は、このクラスのために必要ではないので、基礎となるARGB値がnullのとき、私はColor.Emptyを返すという考えを維持したい
return ColorArgb == null ? Color.Empty : Color.FromArgb(ColorArgb ?? 0);
、しかし:ここでは私がこれまで持っているものですヌル合体演算子の右辺に決して到達しない。値がnullではないことを保証しましたが、コンパイラにベストプラクティス形式で明示的に指示する方法がわかりません。深刻な問題ではありませんが、私は学びたいと思います。このように、すべての助けが大変に感謝しています。
編集:ColorArgbはタイプSystem.Nullable<int>
タイプ 'int? 'の' ColorArgb'はありますか? – ZoolWay