设置Interface属性的默认值?

时间:2011-10-12 05:20:36

标签: c# oop class interface class-design

我有一个包含一个属性的接口。我需要设置该属性的默认值。怎么做?。在接口中为属性设置defualt值也是一种好习惯吗?或者在这里使用抽象类是一个合适的?

提前完成

3 个答案:

答案 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。抽象类可以返回任何属性的默认值。