У меня есть интерфейс, который ради примера выглядит следующим образом:интерфейс Базового класса конкретизации с помощью универсального метода
interface IFoo<TEnum> where TEnum : struct, IConvertible, IComparable, IFormattable
{
TEnum MyEnum { get; set; }
}
Я тогда абстрактный базовый класс, который выглядит следующим образом:
abstract class FooBase<TEnum> : IFoo<TEnum> where TEnum : struct, IConvertible, IFormattable, IComparable
{
public TEnum MyEnum { get; set; }
}
Я тогда наследуют от базового класса так:
class MyFoo : FooBase<MyFoo.MyFooEnum>
{
public enum MyFooEnum
{
Foo1,
Foo2,
}
}
Как я могу создать экземпляр MyFoo
сюда m общий метод с параметром типа FooBase
?
Я очень много искал что-то вроде этого:
static class FooMethods
{
public static TFooClass GetFoo<TFooClass>() where TFooClass : FooBase, new()
{
TFooClass fooclass = new TFooClass();
return fooclass;
}
}
У меня есть проблема в том, что она хочет ввести параметры FooBase
, но на самом деле я не очень волнует то, что параметры, так как мой MyFoo
уже имеет эти параметры.
[! Абстрактный рисунок завода на помощь] (http://www.dofactory.com/net/abstract-factory-design-pattern) – Liam
@Liam Я мог бы просто быть усталым, но я не совсем понимая, как это реализовать. – Logan
, и вы не хотите, чтобы подпись метода выглядела так: public static TFooClass GetFoo() '? –