したがって、これら2つのメソッドの署名は同じですが、制約が異なります。
public static void Method<T>(ref T variable) where T : struct { }
public static void Method<T>(ref T variable) where T : class { }
ただし、同じ署名を持っているため、単一のクラスで定義することはできません。ただし、この特定のケースでは、これらは相互に排他的です。(私がそれについて間違っていない限り)
class
他に追加の制約を設定できることは理解していますが、両方を同じメソッドでstruct
指定することはできません。では、なぜこれがコンパイルに失敗するのでしょうか?struct
class