How to make safe cast using generics in C#?
Posted
by TN
on Stack Overflow
See other posts from Stack Overflow
or by TN
Published on 2010-03-30T21:58:30Z
Indexed on
2010/03/30
22:03 UTC
Read the original article
Hit count: 353
I want to implement a generic method on a generic class which would allow to cast safely, see example:
public class Foo<T> : IEnumerable<T>
{
...
public IEnumerable<R> SafeCast<R>()
where T : R
{
return this.Select(item => (R)item);
}
}
However, the compiler tells me that Foo<T>.SafeCast<R>() does not define parameter 'T'
. I understand this message that I cannot specify a constraint on T
in the method since it is not defined in the method. But how can I specify an inverse constraint?
© Stack Overflow or respective owner