필자는 추상 형식을 상속하는 구체적인 인스턴스를 반환하는 팩토리 클래스가 있습니다. 이 구체화 된 인스턴스에는 각 인스턴스마다 다른 데이터 유형이 필요하므로 해당 데이터 유형에 대한 일반 특성이 있습니다. Data 속성은 팩토리에서 설정되었으므로 추상 유형에도 있습니다.추상 클래스의 팩토리 메서드에서 제네릭 형식을 재정의 할 수 있습니까?
public static class FactoryClass
{
public static TType CreateNewClass<TType>(object data)
where TType : AbstractClass<object>, new()
{
var newClass = new TType {Data = data};
// do some stuff
// keep track of all created types in a list
List.Add(newClass);
return newClass;
}
private List<AbstractClass<object>> MyList = new List<AbstractClass<object>>()
}
public abstract class AbstractClass<TData>
{
internal AbstractClass()
{
// do constructor things
}
protected SomeCommonFunction()
{
// common code for abstract base class
}
public abstract void DoSomethingToData();
TData Data;
}
public class ExampleClass : AbstractClass<string[]>
{
public override void DoSomethingToData()
{
// sort the strings or something
// call the abstract code
}
}
나는 시도하고 그것이 내가 할 노력하고있어 할 수있는 더 나은 방법이 있나요 AbstractClass<object>
에 스트 할 필요가 나는 오류가 FactoryClass.CreateNewClass<ExampleClass>(myStringArray)
전화를?
where TType : AbstractClass<object>
그 제약 조건이 정확히 컴파일러에 대해 불평하는 하나입니다
. 오타가 많이 있니? – devio
예. 나는 SO 문항에서 읽을 수있는 코드로 작업하는 코드를 닦아내는 것보다 쉬웠 기 때문에 처음부터 재 입력했다. 고쳤다. – WarrenB