公共静态方法+接口

Yak*_*kov 2 c# static interface

由于我们无法在接口中定义公共静态方法,这样的接口是否可以在具有public static的类中实现?

public interface IValidator
{
    bool IsValid(bool data);
}

public class MyValidator : IValidator
{
    public static bool IsValid(string data)
    {
        //code which returns bool
    }
}
Run Code Online (Sandbox Code Playgroud)

Lia*_*ath 5

不,C#不允许静态接口.

接口被设计为充当类之间的契约,该契约定义这些类的每个实例都将具有一组方法.

Jon Skeet在这个问题上做了很好的解释,我建议你阅读它.

  • 考虑使用单例设计模式和非静态方法.这可能适合你的情况. (2认同)