Common Language Specification は、メソッドのオーバーロードに対して非常に厳密です。
メソッドは、パラメーターの数と型に基づいてのみオーバーロードできます。ジェネリック メソッドの場合は、ジェネリック パラメーターの数に基づいています。
csc によると、このコードが CLS に準拠している (CS3006 警告なし) のはなぜですか?
using System;
[assembly: CLSCompliant (true)]
public class Test {
public static void Expect<T>(T arg)
{
}
public static void Expect<T>(ref T arg)
{
}
public static void Main ()
{
}
}