按条件

时间:2015-10-04 00:07:24

标签: c# function delay

在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();
}

1 个答案:

答案 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();
}