在C#中,我有一组将来运行的函数候选:void func1(int); void func2(float); void func3(string); ...等等。
一些代码将决定哪个func123将运行(或者没有运行),并决定参数值}
if(ConditionMetToRun){使用参数运行该函数;}
我该怎么做?
好的,这是一个例子
void WearSunStuff(whichSumpscreen,whichSunglasses);
void OpenUmbrella(whichUmbrella);
void WearCoat(whichCoat);
然后我看着窗户,看到它在下雨。我最好打开雨伞。 但是我在家里,我不需要打开我最喜欢的黑色雨伞。
If(FriendingIsCallingMeToGoOutside)
{
OpenUmbrella(blackUmbrella);
GoOutSideToMeetMyFriend();
}
或..... 然后我看着窗户,看到它真的很合适。我最好穿上外套。 但是我在家,我不需要打开我最喜欢的黄色外套YET。
If(FriendingIsCallingMeToGoOutside)
{
WearCoat(yelloCoat);
GoOutSideToMeetMyFriend();
}
答案 0 :(得分:0)
FutureCandidates futureCandidates = new FutureCandidates();
System.Reflection.MethodInfo func = futureCandidates.GetType().GetMethod("OpenUmbrella"); //OR WearCoat
if(FriendingIsCallingMeToGoOutside)
{
func.Invoke(futureCandidates, new object[] { blackUmbrella });
GoOutSideToMeetMyFriend();
}