我想调用一个类的静态成员,它使用泛型而不指定类型,并让编译器推断它们。C#泛型 - 静态类型的静态工厂成员
例如,这是通用类我想用,用静态工厂成员:
public class GenericClass<T>
{
public T Member;
// Constructor
public GenericClass(T value)
{
Member = value;
}
// static factory method
public static GenericClass<T> StaticFactory(T resultData)
{
return new GenericClass<T>(resultData);
}
}
如果我尝试以下方法不能编译:
public class Class1
{
public GenericClass<string> returnResult1()
{
return GenericClass.StaticFactory("Won't Compile, but it's clear that T is a string");
}
public GenericClass returnResult2()
{
return GenericClass.StaticFactory("Won't Compile, but it's clear that T is a string");
}
}
错误1使用通用类型'SampleStatic.GenericClass'需要1个类型参数
为什么我不能像静态成员那样做下面的事情?
public void ICanInferTheType<T1>(T1 item);
public void returnResult4()
{
ICanInferTheType("Compiles, recognizes type string");
}
谢谢 -
嘛修复与'GenericClass .StaticFactory(“字符串”)宣布它;' –
ryanyuyu
@ryanyuyu真正的解决方案确实是将工厂移动到具有相同名称的非泛型类......但是也起作用。 –
@AlexeiLevenkov,因为它是一个工厂,所以很有意义。 – ryanyuyu