Skip to main content
 首页 » 编程设计

c#之如何将实现公共(public)接口(interface)的集合添加在一起

2024年02月03日27telwanggs

我已经按如下方式设置了我的类(class)。 因此,这两个集合都实现了一个通用接口(interface) - IChild。

有没有办法让父级的方法返回每个集合的公共(public)部分?

我在下面使用“+”,我知道这行不通,但它表明了我正在尝试做的事情。

public interface IChild 
{ 
    DateTime Date { get; } 
    Parent Parent { get; set; } 
} 
 
public class Boy : IChild 
{ 
    public virtual Parent Parent { get; set; } 
    public virtual DateTime GraduationDate { get; set; } 
    public virtual DateTime Date { get { return ProcedureDate; } } 
} 
 
public class Girl : IChild 
{ 
    public virtual Parent Parent { get; set; } 
    public virtual DateTime WeddingDate { get; set; } 
    public virtual DateTime Date { get { return ContactDate; } } 
} 
 
 
public Parent 
{ 
    protected IList<Boy> _boys = new List<Boy>(); 
    protected IList<Girl> _girls = new List<Girl>(); 
 
    public virtual IEnumerable<Boy> Boys 
    { 
        get { return _boys; } 
    } 
 
    public virtual IEnumerable<Girl> Girls 
    { 
        get { return _girls; } 
    } 
 
    public virtual IEnumerable<IChild> Children 
    { 
        get 
        { 
            return _boys + _girls; 
        } 
    } 
} 

谢谢

请您参考如下方法:

public virtual IEnumerable<IChild> Children 
{ 
    get 
    { 
        return _boys.Concat<IChild>(_girls); 
    } 
}