Frage

Hier ist eine einfache Syntax Frage (hoffe ich), ich weiß, wie ein generischen Typen zu beschränken, die mit where-Klausel, aber wie zwei generische Typen beschränken?

Vielleicht ist der einfachste Weg, um meine beste Vermutung in Bezug auf die Syntax aufzuschreiben, was war.

public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests 
  where TDao : IDao<TComponent>, TComponent : EDC2ORMComponent {
    public void GetByIdTest(int id) { }
}

Das gibt mir einen Fehler. Wer weiß, was die richtige Syntax ist?

War es hilfreich?

Lösung

Verwenden Sie zwei ‚wo‘ Schlüsselwörter, zum Beispiel ich eine Erklärung wie diese:

public interface IParentNodeT<TChild, TSelf>
    where TChild : IChildNodeT<TSelf, TChild>, INodeT<TChild>
    where TSelf : IParentNodeT<TChild, TSelf>
{
    TChild childRoot { get; set; }
}

Andere Tipps

Dies sollte funktionieren:

public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests 
  where TDao : IDao<TComponent> where TComponent : EDC2ORMComponent {
    public void GetByIdTest(int id) { }
}

Sie wiederholen nur die, wo.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top