我有一種方法,其中的對象的類型提前知道,並且該對象(及其類型)需要傳遞給方法,例如:調用T的方法,其中類型包含在一個字符串中
public void foo()
{
string type_of_object = "person";
person p = new person();
// insert code here
}
public T method<T>(object obj)
{
// some functions go here
return (T)...
}
鑑於可能有數百種類型,我不得不處理,我不想做每種類型的switch語句。我似乎無法弄清楚如何沿着這些路線做些什麼:
var foo = method<person.GetType()>(p);
任何接受者?
我知道有時事情可能是你無法控制的,但如何走到這一步是必須擺在首位? – Ocelot20
通用參數必須是編譯時常量,無論是推斷的還是顯式的。您無法提供類型值,您實際上必須提供類型名稱。基本上,你不能做你在問什麼。 –
這個特定應用程序的後半部分是通用的。我們正在嘗試增加通用代碼的數量。在每種情況下都有一個switch語句,每種類型都有相同的代碼塊(當然類型有變化),但問題是類型的數量將會變得非常非常大。乾杯 – joelc