Allgemeine Einschränkung für Methodenvielfach (OR)

lesendieseIch habe gelernt, dass es möglich ist, einer Methode das Akzeptieren von Parametern mehrerer Typen zu ermöglichen, indem sie zu einer generischen Methode gemacht wird. In diesem Beispiel wird der folgende Code mit einer Typeinschränkung verwendet, um sicherzustellen, dass "U" ein istIEnumerable<T>.

public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
    return arg.First();
}

Ich habe etwas mehr Code gefunden, der das Hinzufügen mehrerer Typeinschränkungen ermöglichte, wie zum Beispiel:

public void test<T>(string a, T arg) where T: ParentClass, ChildClass 
{
    //do something
}

Dieser Code scheint dies jedoch zu erzwingenarg muss beides sein eine art vonParentClass und ChildClass. Was ich tun möchte, ist zu sagen, dass Arg eine Art von sein könnteParentClass oder ChildClass auf folgende Art:

public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}

Ihre Hilfe wird wie immer geschätzt!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage