教育目的で、私はキャストを使って多くのことを行います (おそらく一度も使用されていないかもしれません)。それらの1つは、私が嫌いな解決策に私を導きます。
たとえば、2 つのクラスがあるとします。
class ClassA
{
public int MyInt;
public string MyString;
}
class ClassB
{
public int SomeInt;
}
ここで、暗黙的に ClassA を ClassB にキャストしたいと考えています。そのために私は書くことができます:
public static implicit operator ClassB(ClassA obj1)
{
ClassB obj2 = new ClassB();
obj2.SomeInt = obj1.MyInt;
return obj2;
}
でもMyString
迷子になる可能性はある、それは許してはならない。この問題を解決するために、変換に追加しました:
if (obj1.MyString != null)
throw new DataLostException();
これは問題なく動作しますが、もっと簡単な解決策が必要です。私の質問は、この種のデータ損失をより簡単な方法で処理するにはどうすればよいですか?