我有點困惑atm,我不認爲這可能是如此艱難,因爲那時我一定會做錯事。過去2天我現在要做的是訪問存儲在列表中的對象內的方法,但我無法得到它。在我看來,它應該是讓對象回到它的原始類型並調用方法,但我不能這樣做。存儲對象的調用方法
我一直在閱讀關於類型,泛型和反射的很多內容,但它無法獲得任何工作,所以我一直在做這一切都錯了,我需要幫助找到光!
繼承人我試圖
Object customer = Hotel.Main.Manager.GetMainList(x);
Type frsttype = customer.GetType();
MethodInfo method = frsttype.GetMethod("GetCustomerSpecificData");
MethodInfo generic = method.MakeGenericMethod(frsttype);
String str = generic.Invoke(method);
最新的代碼我試圖達到的目標裏面這個方法:
public override string GetCustomerSpecificData()
{
string strout = string.Format("{0,-5}{1,26}{2,28}{3,28}\a", ID, Name, Age, Gender);
string strInfo = Extra;
strout += (string.IsNullOrEmpty(strInfo) ? string.Empty : strInfo);
if (m_specialoffer)
{
strout += string.Format("\nSpecial Offer");
}
if (IsRegularCustomer)
{
strout += (IsDangerus ? "\nIs a regular customer " : "\nIs not a regular customer.");
}
strout += Environment.NewLine + PaymentInfo();
strout += (m_CarPark ? "\nHas car parked in garage." : "\nDoes not have car parked in garage.");
return strout;
}
我希望有人能指出我在正確的方向,因爲我不要以爲我得到這個的任何地方:/
任何幫助和提示將不勝感激!所有將被回覆!
問候
爲什麼你必須走這條路?你不能簡單地投給客戶,然後調用該方法嗎? '((客戶)客戶).GetCustomerSpecificData();' – rene 2013-03-09 10:26:35
對不起,我不清楚。該對象可以是我在枚舉中聲明的幾種不同類型,該對象是根據它的類型創建的,然後作爲對象存儲。我需要能夠將它轉換回原來的類型,而不知道它是什麼。但是,只要我能夠將它投入到類型中,你的想法應該會更容易。 – user1501127 2013-03-09 10:43:31
如果您不確定返回的類型,但是它們都實現此方法,您可以使用接口和/或基類嗎? – pwdst 2013-03-09 11:02:03