我想調用一個類的靜態成員,它使用泛型而不指定類型,並讓編譯器推斷它們。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