防止c#类实现接口中定义的方法以外的任何方法
本文关键字:方法 任何 定义 实现 接口 防止 | 更新日期: 2023-09-27 18:13:45
是否有可能在Visual Studio (c#)中定义一个带有某些方法的接口,并强制实现该接口的类只定义接口中定义的方法,并防止类定义接口中未指定的任何方法?
据我所知,接口是一个包容性契约,而不是排他性契约。处理这个问题的方法是调用类的接口实例化,而不是调用具体的实例化。请看下面的例子。通过这样做,您可以将代码限制为只能看到接口定义的特定方法。
现在,有些人会指出您可以编写一个框架,并使用反射来比较接口方法和类方法-但我不怀疑这是OPs的意图。public interface IMyInterface
{
bool AmITrue { get; set; }
}
public class Class1 : IMyInterface
{
public bool AmITrue { get; set; }
public bool AmIAnotherProperty { get; set; }
}
public class MainClass
{
public MainClass()
{
IMyInterface limitedClass = new Class1();
var works = limitedClass.AmITrue;
var doesNotWork = limitedClass.AmIAnotherProperty;
}
}
不,那是不可能的。
但听起来你真的想定义一个class
本身,这不是达到同样的目的吗?