class Test { public static void Main () { } static void Foo<T> (ref T t) { } static void Foo<T> (T[] t) { } static void Foo<T> (T[,] t) { } static void Foo<T> (T[, ,] t) { } static void Bar (ref int t) { } static void Bar (int[] t) { } static void Bar (int[,] t) { } static void Bar (int[, ,] t) { } }