出于教育目的,我在选角方面做了很多事情(可能从未使用过)。其中之一引导我找到我不喜欢的解决方案。
假设,我有 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();
这工作正常,但必须有更简单的解决方案。我的问题是,如何以更简单的方式处理这种数据丢失?