Withou using dynamic keyword, can we do type casting based on generic type parameters?
<pre><code>using System;

static class Utility&lt;T, TReturn&gt;
{
public static TReturn Change(T arg)
{
    // is there any solution to do this type casting but without dynamic keyword? 
    return (TReturn)(arg as dynamic);
}
}


  class Program
 {
   static void Main(string[] args)
{
    int i = 100;

    try
    {
        short s = Utility&lt;int,short&gt;.Change(i);
        Console.WriteLine(s);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
    }
}
 }
</code></pre>
