我遇到这样的问题: -
1)包含Car,Scooter和Bike等值的列表框。点击按钮。
<div>
<asp:ListBox ID="lst" runat="server">
<asp:ListItem Text="Bike" Value="Bike"></asp:ListItem>
<asp:ListItem Text="Car" Value="Car"></asp:ListItem>
<asp:ListItem Text="Scooter" Value="Scooter"></asp:ListItem>
</asp:ListBox>
<br />
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Invoke" />
</div>
2)现在我有三个不同的课程如下: -
class Car
{
static string getData()
{
return "I like cars";
}
}
class Bike
{
static string getData()
{
return "I like Bike";
}
}
class Scooter
{
static string getData()
{
return "I dont like scooter";
}
}
3)现在在按钮单击事件处理程序“Button1_Click”上,我想使用 REFLECTION only 基于列表框中的选定值调用getData()方法。
请帮帮我。
答案 0 :(得分:1)
string data = (string)Type.GetType("MyAwesomeNamespace." + "Car").GetMethod("getData").Invoke(null, null);
Type.GetType
获取您的类型。您可能希望使用命名空间GetMethod
获取getData方法Invoke
将执行该方法。由于该方法是静态的,因此使用null调用该方法将起作用。如果它不是静态的,则必须将null替换为该对象的实例。此外,第二个null用作参数,在这种情况下不是