Gegenseitig ausschließende Einschränkungen für zwei Methoden mit derselben Signatur

Diese beiden Methoden haben also dieselbe Signatur, aber unterschiedliche Einschränkungen

public static void Method<T>(ref T variable) where T : struct { }

public static void Method<T>(ref T variable) where T : class { }

Sie können jedoch nicht in einer einzelnen Klasse definiert werden, da sie die gleichen Signaturen haben. In diesem speziellen Fall schließen sie sich jedoch gegenseitig aus. (Sofern ich mich nicht irre)

Soweit ich weiß, können Sie darüber hinaus weitere Einschränkungen festlegenclass undstruct Sie können jedoch nicht beide angebenstruct undclass auf die gleiche Methode. Warum kann dies nicht kompiliert werden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage