I'm struggling with some generics. The following is my setup:
interface I<T> { }
[...]
void Add<T>(T obj) where T : I<??> { }
How can I ensure that T
in the Add
method implements I
?
I'm struggling with some generics. The following is my setup:
interface I<T> { }
[...]
void Add<T>(T obj) where T : I<??> { }
How can I ensure that T
in the Add
method implements I
?
You need to pass the T parameter to add also.
void Add<TI, TAny>(TI obj) where TI : I<TAny>
The following signature will allow Add
to take any T
that implements I<>
with any type parameters.
void Add<T,S>(T obj) where T : I<S> {
}
The downside of using this method signature is that type inference doesn't kick in and you have to specify all the type parameters, which looks downright silly:
blah.Add<I<int>, int>(iInstance);
A much simpler approach is to use the below signature:
void Add<T>(I<T> obj) {
}