Возможно ли, чтобы метод из общего класса вел себя совершенно по-разному для определенного типа?Специальный случай в методе общего класса C#
class MyClass<T> {
public void myMethod(T t) { // Do something }
// something for myMethod(int t) { // DO something special }
}
В таким образом, что позволяет мне называть (new MyClass<String>()).myMethod(myString)
, который будет делать что-то, а также позвонить (new MyClass<int>()).myMethod(myInt)
, который будет делать что-то особенное.
У меня есть вопрос, потому что класс является общим, метод - нет. Все это работает? –
Да, потому что независимо от типа, который вы передаете классу, вы по-прежнему используете соответствующую перегрузку. То есть, это тот же класс, независимо от того, какой тип вы передаете ему. –
Но это вводит новый метод, который я не хочу. Я имею в виду, если у меня есть 'MyClass c' я не хочу, чтобы люди могли называть 'c.mymethod (myInt)' –