我对自动取款机有点困惑,我认为这不会这么难,因为那时我一定做错了什么。在过去的 2 天里,我现在要做的是访问存储在 List 中的对象内部的方法,但我无法理解它。在我看来,它应该只是让对象恢复其原始类型并调用该方法,但我就是做不到。
我一直在阅读很多关于类型、泛型和反射的内容,但它无法正常工作,所以我显然做错了,我需要帮助找到光!
这是我尝试过的最新代码
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;
}
我希望有人能指出我正确的方向,因为我认为我在这个方面没有任何进展:/
任何帮助和提示将不胜感激!!!所有的回复都会被点赞!
问候