我有這樣的:泛型沒有特定類型
class Program
{
static void Main(string[] args)
{
var result = new Result<int, bool> { success = true, Data = 88 };
var result2 = new Result<string, bool> { success = true, Data = "Niels" };
Console.WriteLine(result2.success);
Console.WriteLine(result2.Data);
Console.ReadKey();
}
}
public class Result<T, TU>
{
public TU success { get; set; }
public T Data { get; set; }
}
所以這是具有兩個屬性的簡單的泛型類。
我只是想知道,如何讓這樣的:
var result = new Result<int, bool> { success = true, Data = 88 };
更通用的:)。因爲你還是要「說」的返回類型是什麼:<int, bool>
所以是有可能做到這一點的例子是這樣的:
<T var1, T var2> ?
謝謝
所以,我的意思是這樣:
var result = new Result<T var1, T var2> { success = true, Data = 88 };
這樣就可以填補的成功和任何你想要的數據(字符串,整數,浮點,布爾)..
你的意思是你想創建一個'Result'的實例,而不必明確寫出泛型? – grek40
'公共結果 f(T t,TU tu)=>新結果(t,tu);''是更通用的。但編譯器必須從某處獲取類型參數。你必須更具體地說明''是什麼意思。 –
構造函數不能自動推斷泛型類型參數。但是方法*可以*,所以使用grek40提供的工廠方法。 – HimBromBeere