using System; using System.Collections; using System.Linq; class A : IEnumerable { protected int Count { get { return 0; } } IEnumerator IEnumerable.GetEnumerator () { return null; } } class G where T : A { void Test () { T var = null; int i = var.Count (); } } public static class Extensions { public static int Count (this IEnumerable seq) { return 0; } public static void Main () { } }