Страницы

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

понедельник, 23 декабря 2019 г.

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

#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, нужно вызывать базовый конструктор.

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

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