#c_sharp #ооп #наследование #generics
Как написать наследование обычного класса от дженерика или это не совсем правильная
практика?
using System;
public class Program{
public static void Main(){
var obj1 = new Child(25);
obj1.objectType();
}
}
class Child : Parent {
public Child(int num){
this.obj = num;
}
}
class Parent{
T obj;
public Parent(T obj) { this.obj = obj; }
public void objectType(){
Console.WriteLine("Тип : " + typeof(T));
}
}
Ответы
Ответ 1
Наследовать от обобщенного класса можно и такое решение оправдано. Но при этом нужно либо чтобы новый класс тоже был обобщенным, либо указывал конкретный тип параметра. Т.е. либо: class Child: Parent { public Child(T num) : base(num) { } } Либо: class Child : Parent { public Child(int num) : base(num) { } } P.S. Как верно заметил @Grundy, нужно вызывать базовый конструктор.
Комментариев нет:
Отправить комментарий