using System; using System.Collections; class App { public static int Main () { foreach (object o in QueryEnumerable<string>()) { if ((string)o != "Type: System.String") return 1; } if (TestType<string>().GetType () != typeof (string)) return 2; return 0; } public static IEnumerable QueryEnumerable<T> () { yield return "Type: " + typeof(T); } public static T TestType<T> () { return (T) TestType (typeof(T)); } public static object TestType (Type t) { return "1"; } }