C# 如何在接口中使用接口
我想创建一个接口,它可以处理一个接口的多个其他对象 我尝试在接口中使用接口,并在新类中使用对象C# 如何在接口中使用接口,c#,interface,C#,Interface,我想创建一个接口,它可以处理一个接口的多个其他对象 我尝试在接口中使用接口,并在新类中使用对象 public interface IObject { double Value { get; set; } } public class FirstObject: IObject { double Value { get; set; } } public class SecondObject: IObject { string Titel { get; set; }
public interface IObject
{
double Value { get; set; }
}
public class FirstObject: IObject
{
double Value { get; set; }
}
public class SecondObject: IObject
{
string Titel { get; set; }
double Value { get; set; }
}
public interface ICollection
{
IObject[] Values { get; set; }
}
public class Collection: ICollection
{
SecondObject[] Values { get; set; }
}
现在我得到一个错误,我的集合
没有实现ioobject[]值
成员
我想当我使用一个对象(SecondObject
)时,它从接口ioobject
实现,Collection
应该处理这个问题
我做错了什么?我如何解决这个问题 在这里使用泛型可能会更好:
public interface ICollection<T> where T : IObject
{
T[] Values { get; set; }
}
public class Collection : ICollection<SecondObject>
{
public SecondObject[] Values { get; set; }
}
Collection类未实现ICollection接口的Value属性,因为它不是IOObject[]类型。如果要为具体类型提供显式实现,则应为Collection.Ah.使用泛型实现。。完全忘记了泛型。。非常感谢你!作为一个已经开始在代码中更多地使用泛型的人,这个答案非常漂亮,并为我提供了一个实际的实例来说明为什么它是有用的。
public SecondObject[] Values { get; set; }
IObject[] ICollection.Values
{
get
{
return this.Values;
}
set
{
this.Values = value?.Cast<SecondObject>().ToArray();
}
}