Ich habe eine Schnittstelle, wie dies aus Gründen Beispiel die aussieht:Schnittstelle Basisklasse Instanziierung über generische Methode
interface IFoo<TEnum> where TEnum : struct, IConvertible, IComparable, IFormattable
{
TEnum MyEnum { get; set; }
}
ich dann eine abstrakte Basisklasse haben, die wie folgt aussieht:
abstract class FooBase<TEnum> : IFoo<TEnum> where TEnum : struct, IConvertible, IFormattable, IComparable
{
public TEnum MyEnum { get; set; }
}
ich dann erben von der Basisklasse wie folgt:
class MyFoo : FooBase<MyFoo.MyFooEnum>
{
public enum MyFooEnum
{
Foo1,
Foo2,
}
}
Wie kann ich eine MyFoo
fro instanziiert m eine generische Methode mit dem Typparameter FooBase
?
ich ziemlich bin für so etwas wie folgt aussehen:
static class FooMethods
{
public static TFooClass GetFoo<TFooClass>() where TFooClass : FooBase, new()
{
TFooClass fooclass = new TFooClass();
return fooclass;
}
}
Das Problem, das ich habe ist, dass es für FooBase
Parameter geben will, aber da in Wirklichkeit meine ich nicht wirklich, was die Parameter MyFoo
hat diese Typparameter bereits.
[! Abstrakte Fabrik zur Rettung] (http://www.dofactory.com/net/abstract-factory-design-pattern) – Liam
@Liam könnte ich nur müde sein, aber ich bin ich sehe nicht genau, wie ich das umsetzen würde. – Logan
und Sie möchten die Methodensignatur nicht wie folgt machen 'public static TFooClass GetFoo()'? –