私は少し混乱している atm で、何か間違ったことをしているに違いないので、これほど難しいとは思いません。過去 2 日間に私がやろうとしているのは、リストに格納されているオブジェクト内のメソッドにアクセスすることです。私の考えでは、オブジェクトを元の型に戻してメソッドを呼び出すだけでよいのですが、それはできません。
タイプ、ジェネリック、リフレクションについてたくさん読んでいますが、うまくいかないので、明らかにすべて間違っているので、光を見つけるのに助けが必要です!
Heresは私が試した最新のコードです
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;
}
私はこれでどこにも行けないと思うので、誰かが私を正しい方向に向けることができることを願っています:/
どんな助けやヒントも大歓迎です!!! すべての返信に賛成票が投じられます!
よろしく