Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在接口中使用接口_C#_Interface - Fatal编程技术网

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();
    }
}