Wie mehrere generische Typen beschränken?
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?
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