题
在java中,我可以使用'final'关键字来完成此操作。我没有在C#中看到'final'。有替代品吗?
解决方案
您正在寻找 sealed
关键字。它完全与Java中的 final
关键字完全相同。尝试继承将导致编译错误。
其他提示
还要注意“我认为任何人都不需要继承这个”。不是使用“密封”的好理由。除非您确实需要确保使用特定实现,否则请将该类保持为未密封状态。
正如Joel已经建议的那样,您可以在C#中使用 sealed
而不是 final
。
http://en.csharp-online.net/CSharp_FAQ:_Does_CSharp_support_final_classes
sealed
修饰符将执行 final
在Java中的操作。
此外,虽然这可能不是您在这种情况下所寻找的,但将类标记为 static
也会使其不被继承(它在幕后变得密封)。
sealed
关键字可以使用,但您仍然可以使用反射IIRC从该类派生。
不隶属于 StackOverflow