Страницы

Поиск по вопросам

понедельник, 19 ноября 2018 г.

Как лучше наследовать обычный класс от дженерика в С#

Как написать наследование обычного класса от дженерика или это не совсем правильная практика?
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)); }
}


Ответ

Наследовать от обобщенного класса можно и такое решение оправдано. Но при этом нужно либо чтобы новый класс тоже был обобщенным, либо указывал конкретный тип параметра.
Т.е. либо:
class Child : Parent { public Child(T num) : base(num) { } }
Либо:
class Child : Parent { public Child(int num) : base(num) { } }
P.S. Как верно заметил @Grundy, нужно вызывать базовый конструктор.

Комментариев нет:

Отправить комментарий