C#界面问题

rus*_*uss 7 c#

如果我想要一堆类来实现一个方法,我可以让它们实现一个接口.但是,如果我希望方法始终使用两个自定义属性进行修饰,是否有语法?换句话说,我希望每个实现方法Run()的类都附加一个descriptionAttribute和一个versionAttribute.

更新:有没有办法让实现Run()的类生成编译错误,如果他们没有附加这两个属性?

hun*_*ter 6

public interface IRun
{
    void Run();
}

public abstract class RunBase : IRun
{
    [Description("Run Run Run")]
    [Version("1.0")]
    public abstract void Run();
}

public abstract class SoRunning : RunBase
{
    public override void Run() {} 
}
Run Code Online (Sandbox Code Playgroud)

你应该能够从基类中获取属性

  • 如果你有一个抽象类,为什么还需要这个接口呢? (3认同)
  • @Juliet - 假设你正在编程接口IRun,这样做不会影响你的其余代码. (2认同)

Yur*_*ich 3

没有编译时方法来强制执行这一点。