如何防止对象不应该是切片

时间:2012-10-03 13:53:24

标签: c#

我有2个类,一个是基类,第二个是派生类。 想要限制对象切片,我该怎么做才能使用C#.net?

1 个答案:

答案 0 :(得分:0)

<强>更新

我发现如下所述的初步想法并非如此: 请参阅:C++ slicing in Java / C#


原始答案:

如果我理解正确,这是一个理论问题。 REDUCING切片可以通过不在派生类中定义新成员来完成。

在将派生类的实例分配给基类引用类型时发生切片。 在这种情况下,系统不知道在哪里分配新的数据类型,因为它仅在派生类中定义,而不是在基类中定义。

但是RESTRICT没有办法,这就是假设发生的事情,它被定义为

  

按价值分配的自然且不可避免的后果   子类对象

Object slicing - Wikipedia

但是,您可以将类声明为sealed以防止将限制对象切片的继承,因为它将阻止原因(继承),因此您不会通过值将派生类分配给基本引用。 / p>