Wystąpił problem z przeciążaniem metod, które mają różne ograniczenia, które wydają się wyłączne. To jest mój przykład:Członek z tym samym sygnaturą, który już został zdefiniowany z różnymi typami ograniczeń.
public class A
{
public void Do<T>() where T : class
{
}
public void Do<T>() where T : struct
{
}
}
I to nie kompiluje się z powodu następującego błędu „członek z tym samym podpisem już zdefiniowany”. Czy możliwe jest spełnienie obu warunków jednocześnie, czy to tylko ograniczenie kompilatora C#?
Przynajmniej mam nadzieję, że to było prawdą, że te dwa ograniczenia są wyłączną i to tylko ograniczenie , dobrze? :) –
@IlyaChernomordik: To ograniczenie, ale całkiem rozsądne jedno IMO. –
Ale co jest złego w zezwalaniu na to? Po prostu muszę wykonać różne czynności w zależności od tego, czy chodzi o klasę (mogę sprawdzić, czy jest to wartość null), czy o ile jest długa (wtedy wiem, że ta wartość istnieje). Tak więc wyjście powinno polegać na nadawaniu różnych nazw metodom, które wydaje. Zdecydowanie nie chcę używać tej koszmarnej drogi :) –