Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to constrain multiple generic types?

Tags:

Here's a simple syntax question (I hope), I know how to constrain one generic type using the where clause, but how to constrain two generic types?

Maybe the easiest way is to write down what my best guess as to the syntax was.

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

This gives me an error. Anyone know what the proper syntax is?

like image 539
George Mauer Avatar asked Dec 30 '08 19:12

George Mauer


1 Answers

Use two 'where' keywords, for example I have a declaration like this:

public interface IParentNodeT<TChild, TSelf>     where TChild : IChildNodeT<TSelf, TChild>, INodeT<TChild>     where TSelf : IParentNodeT<TChild, TSelf> {     TChild childRoot { get; set; } } 
like image 54
ChrisW Avatar answered Sep 28 '22 02:09

ChrisW