有没有办法让私有类方法继承公共接口方法?

时间:2014-07-03 18:03:10

标签: c# asp.net class interface

我想要这样的事情:

public interface IBlah
{
   void setBlah();
   float calculateBlahVelocity();
}


public class Blah : IBlah
{
   private void setBlah() { /** .... **/ }
   public float calculateBlahVelocity { /** .... **/ }
}

但C#似乎并不喜欢这样。那么有没有[另一种]方法来获得这种功能呢?

1 个答案:

答案 0 :(得分:1)

完全。如果Blah实施IBlah,那么它必须采用setBlah方法。

你可以 显式地实现该方法,这会强制调用者使用 IBlah接口的方法:

public class Blah : IBlah
{
   void IBlah.setBlah() { /** .... **/ }
   public float calculateBlahVelocity() { /** .... **/ }
}

然后需要通过接口调用该方法:

Blah b = new Blah();
b.setBlah();  // invalid
IBlah i = b;
i.setBlah();  // valid