Did you know that you can call a generic method with out supplying the type argument. The C# compiler will fill in the type parameter for you at compile time since the language is strongly typed.
static void MyMethod<S>(S myParam) { Console.WriteLine(typeof(S).ToString()); Console.WriteLine(myParam.GetType().ToString()); } static void Main(string[] args) { int a1 = 5; object a2 = 5; MyMethod(a1); MyMethod(a2); } /* //Outputs: System.Int32 System.Int32 System.Object System.Int32 */