我想要这样的事情:
public interface IBlah
{
void setBlah();
float calculateBlahVelocity();
}
public class Blah : IBlah
{
private void setBlah() { /** .... **/ }
public float calculateBlahVelocity { /** .... **/ }
}
但C#似乎并不喜欢这样。那么有没有[另一种]方法来获得这种功能呢?
答案 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