using System; using System.Collections.Generic; class Foo {} abstract class Bar { T bang; public abstract Bar Self (); public abstract Bar SelfString (); } abstract class Baz { public abstract TBang Gazonk (object o); public abstract Bar Gazoo (); } class Zap {} interface IZoom {} class Bongo where T : Zap, IZoom { enum Dang { Ding = 2, Dong = 12, } } class Parent {} class Child : Parent { public T [] array; } class TamChild : Child {} class RecChild : Child {} class Tamtam { static void Foo (TFoo tf) { } static void Bar () { Foo (2); } static List Beta () { return new List (); } static List Charlie () { return new List (); } } class It { public IEnumerable> Pwow () { yield return new Foo (); yield return new Foo (); yield return new Foo (); } public void ReadPwow () { foreach (Foo foo in Pwow ()) Tac (foo); } public void Tac (T t) { } } class Duel where T2 : T1 where T3 : T2 {} class ChildReader { public int Read (TamChild t) { return t.array.Length; } } struct Nilible where T : struct { public T t; } class Null { public static int Compare (Nilible x, Nilible y) where T : struct { return Comparer.Default.Compare (x.t, y.t); } } public class DoubleFuncClass { public void Test () { Test (); Test (); } public void Test () { Test (); Test (); } public void Test () { Test (); Test (); } } public class DoubleFuncClass { public void Test () { Test (); Test (); } public void Test () { Test (); Test (); } public void Test () { Test (); Test (); } } public class LaMatrix { public static T At (T[,] m, int i, int j) { return m [i, j]; } }