我有一个包含一个属性的接口。我需要设置该属性的默认值。怎么做?。在接口中为属性设置defualt值也是一种好习惯吗?或者在这里使用抽象类是一个合适的?
提前完成
答案 0 :(得分:6)
您无法为接口的属性设置默认值。
除了接口之外还使用抽象类(它只设置默认值而不实现任何其他内容):
public interface IA {
int Prop { get; }
void F();
}
public abstract class ABase : IA {
public virtual int Prop
{
get { return 0; }
}
public abstract void F();
}
public class A : ABase
{
public override void F() { }
}
答案 1 :(得分:2)
答案 2 :(得分:1)
接口不包含任何实现。他们只做国家成员签名。
接口的实现可以随意拥有任何属性所需的默认值。
E.g。抽象类可以返回任何属性的默认值。