This is a mirror of official site: http://jasper-net.blogspot.com/

C# Convert Generic Type

| Monday, April 4, 2011
I am posting this because I didn't see a simple solution on the first few hits when searching the net.

If you have a generic class of type T and you want to using it with basic types such as int, long, etc. You can use the following method to do the casting:

class myClass<T>
{
   private int myVal;
   public T Get()
   {
      return ((T)(Convert.ChangeType(myVal, typeof(T))));
   }
}

enum SomeEnum { One = 1, Two = 3 }
myClass<SomeEnum> X;
SomeEnum se = X.Get();

You can also use: (TYPE)(retval as IConvertible).ToType(typeof( ....

This is relevant because native types require casting and you cannot use the 'as' keyword.

Read more: Asaf Shelly

Posted via email from Jasper-net

0 comments: