Mitglied mit derselben Signatur, das bereits mit unterschiedlichen Typeinschränkungen definiert wurde

Ich bin auf ein Problem mit Überladungsmethoden gestoßen, die unterschiedliche Einschränkungen haben, die exklusiv erscheinen. Das ist mein Beispiel:

public class A
{
    public void Do<T>() where T : class
    {

    }

    public void Do<T>() where T : struct 
    {

    }
}

Und dies kompiliert nicht mit dem folgenden Fehler "Mitglied mit der gleichen Signatur bereits definiert". Ist es möglich, beide Bedingungen gleichzeitig zu erfüllen, oder ist es nur die Einschränkung des C # -Compilers?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage