小编JAs*_*son的帖子

C#阻止基类方法被派生类中的new修饰符隐藏

这是我的情况.在Java中,我可以在base/super类中将方法标记为final,并且派生类无法屏蔽相同签名的方法.但是在C#中,new关键字允许继承我的类的人创建具有相同签名的方法.

请参阅下面的示例.我需要保持orignal.MyClass公开,所以请不要建议作为答案.这似乎是一个从Java转向C#的迷失功能

public class orignal.MyClass{
    public void MyMethod()
    {
     // Do something
    }
}

class fake.MyClass: orignal.MyClass {
    // How to prevent the following
    public new void MyMethod()
    {
     // Do something different
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:不重复.

所有答案似乎都暗示,不可能阻止方法在派生类中隐藏/隐藏.在将一些旧的Java代码迁移到C#时,这一点变得很明显.Java中的最终方法不允许任何人在任何派生类中使用相同的方法签名.虽然在大多数场景中C#允许在派生类中使用相同签名的方法,但如果有必要,可以防止这种行为.

c# inheritance

9
推荐指数
1
解决办法
5243
查看次数

标签 统计

c# ×1

inheritance ×1