2011-10-12 181 views
4

我有一个接口,其中包含一个属性。我需要设置该属性的默认值。怎么做?。在界面中为属性设置默认值也是一种很好的做法吗?或者在这里使用抽象类来代替是一个恰当的类?设置Interface的属性的默认值?

Thanx预先

回答

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

Petar,Does,使用抽象类除了接口的意思,我应该改变接口为抽象类? – smhnkmr

+1

不,它意味着使用实现接口然后扩展它的抽象类。 –

1

接口包含没有实现。他们所做的只是国家成员签名。

一个实现一个接口可以自由拥有任何属性的默认值。

E.g.抽象类可以为其任何属性返回默认值。