我正在做一个小项目,我遇到了这个问题。
项目输出是一个包含接口的库。如果可能的话,我想实现该接口并像这样密封其中的功能:
public interface ITest
{
void SomeMethod();
}
class A : ITest
{
public sealed override SomeMethod()
{
}
}
这个想法是让每个人都可以使用这个接口,并有一些专门的类来实现它。例外是我想确保如果有人创建了一个 A 类型的专门类,他/她将无法更改该方法的行为。
问题是您不能将“覆盖”关键字放在那里,因为该方法未在接口中声明为“虚拟”。而且您不能在界面中将其声明为“虚拟”,因为它是不允许的。而且您不能删除“覆盖”关键字,因为“密封”需要它。
欢迎任何解决方法或头脑风暴的想法,但如果有人能想出一个包含界面的解决方案,我会很高兴学习它!
谢谢!
编辑:忘记这个问题!就像 Ani 所说,我忘记了 C# 中的默认方法是密封的。似乎偶尔回到基础总是好的......