我有2个类,一个是基类,第二个是派生类。 想要限制对象切片,我该怎么做才能使用C#.net?
答案 0 :(得分:0)
<强>更新强>
我发现如下所述的初步想法并非如此: 请参阅:C++ slicing in Java / C#
原始答案:
如果我理解正确,这是一个理论问题。
REDUCING
切片可以通过不在派生类中定义新成员来完成。
在将派生类的实例分配给基类引用类型时发生切片。 在这种情况下,系统不知道在哪里分配新的数据类型,因为它仅在派生类中定义,而不是在基类中定义。
但是RESTRICT
没有办法,这就是假设发生的事情,它被定义为
按价值分配的自然且不可避免的后果 子类对象
但是,您可以将类声明为sealed
以防止将限制对象切片的继承,因为它将阻止原因(继承),因此您不会通过值将派生类分配给基本引用。 / p>