Указание нескольких интерфейсов для параметра

У меня есть объект, реализующий два интерфейса ... Интерфейсы следующие:

public interface IObject
{
    string Name { get; }
    string Class { get; }
    IEnumerable<IObjectProperty> Properties { get; }
}
public interface ITreeNode<T>
{
    T Parent { get; }
    IEnumerable<T> Children { get; }
}

так, что

public class ObjectNode : IObject, ITreeNode<IObject>
{
    public string Class { get; private set; }
    public string Name { get; private set; }
    public IEnumerable<IObjectProperty> Properties { get; set; }
    public IEnumerable<IObject> Children { get; private set; }
    public IObject Parent { get; private set; }
}

Теперь у меня есть функция, которой нужен один из параметров для реализации обоих этих интерфейсов. Как мне указать это на C #?

Примером может быть

public TypedObject(ITreeNode<IObject> baseObject, IEnumerable<IType> types, ITreeNode<IObject>, IObject parent)
{
    //Construct here
}

Или проблема в том, что мой дизайн неправильный, и я должен каким-то образом реализовать оба этих интерфейса на одном интерфейсе

21
задан silkfire 16 December 2016 в 12:09
поделиться