是否需要实例化一个类才能读取其中一个属性?

时间:2014-04-01 22:20:21

标签: c# .net

说我有一个界面

public interface IType{
    string property1 {get;}
}

和两个实现它的类

public class concrete1 : IType{

    public string property1 {get {return "testing1";}}
}
public class concrete2 : IType{

    public string property1 {get {return "testing2";}}
}

我可以隔离哪个类包含字符串" testing2"没有实例化任何一个类?所以我只能实例化那个特定的。

2 个答案:

答案 0 :(得分:4)

是的,确实如此。

对象仅包含数据(如果已实例化)。即使您如上所述定义属性,仍然需要实例化它。但是,如果创建静态属性,则可以通过调用concrete1.property1等来访问它。

但是,我不相信你可以针对接口定义静态属性。

答案 1 :(得分:2)

不,如果没有该类的实例,则无法引用实例成员(如该属性)。您将需要使该属性static在没有实例的情况下获取它。