接口和将类公开为属性

本文关键字:属性 接口 | 更新日期: 2023-09-27 18:16:55

我正在看我的同行的这段代码,我有点困惑,这是如何有意义的:

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)接口是否可以包含一个类作为属性?2)是不是有循环引用?

接口和将类公开为属性

是不是有循环引用?

不,没有循环引用。

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

它当然可以-为什么你认为它不能?这是完全正常的用法——接口指定该属性将包含该类的实例(即该类型的对象)。为什么要上课?因为类无处不在——甚至很多基本的。net类型都是类。string是一个类。你不能用原始值类型做所有的事情:)

我不能回答为什么ChCurrType有两种不同的用法(一个在根级,一个在CA实例中),这由你自己来弄清楚。