У меня есть класс с общим типомНаследование от класса, который имеет общий тип
class GenericClass<T> where T : new()
{
public T GenericType;
public GenericClass()
{
GenericType = new T();
}
}
теперь я хочу, чтобы создать новые классы, которые наследуют от своих GenericClass, но проходящие новый класс в качестве типа.
так ...
class Class1:GenericClass<Class1>
{
public string Class1Property { get; set; }
}
class Class2 : GenericClass<Class2>
{
public string Class2Property { get; set; }
}
Если я это сделаю, а затем создать новый экземпляр класса 1, код переходит в бесконечный цикл.
Class1 c1 = new Class1();
Является ли то, что я пытаюсь сделать возможным?
Хорошо, что вы пытаетесь сделать? Вы хотели сохранить только _type_ 'T', а не _instance_' T'? –
'class Class1: GenericClass' бесконечный цикл, как вы узнали, что вы ожидали от него? –
Вы также можете проверить, существует ли 'typeof (T) == typeof (this)', чтобы избежать бесконечного цикла, но не совсем ясно, что вы пытаетесь сделать. –