接口和公开类作为属性

时间:2014-08-07 03:40:06

标签: c# inheritance

我正在查看来自我的同行的这段代码,并且对于这有什么意义有点困惑:

public class CA
{
    public CurrType CT {get; set;}
}

public interface ICharge
{
    CA a {get; set;}
    CurrType CT {get; set;}
}

public enum CurrType {X=0, Y=1}
public class Ch : ICharge
{
    public CA a {get; set;}
    public CurrType CT {get; set;}
}

我理解接口包含属性,但不能特别理解上面的代码: 1)接口ICharge可以包含一个类作为属性吗? 2)是不是有一些循环参考?

1 个答案:

答案 0 :(得分:1)

  

是不是有一些循环参考?

不,没有循环引用。

  

接口ICharge可以包含一个类作为属性吗?

肯定可以 - 你为什么认为不可以?这是完全正常的用法 - 接口指定该属性将包含该类的实例(即该类型的对象)。为什么上课?因为类到处都是 - 甚至很多基本的.Net类型都是类。 string是一个类。您无法使用原始值类型执行所有操作:)

我无法回答为什么CurrTypeCh有两种不同的用法(一种在根级别,一种在CA实例中),这是你要弄清楚的

相关问题