C# 按条件延迟函数调用

C# delay function calls by condition

在 C# 中,我有一组将来 运行 的候选函数:void func1(int); void func2(浮动); void func3(string);...等等。

一些代码将决定哪个 func123... 将 运行(或 none 将 运行),并决定参数值}

if (ConditionMetToRun){运行 带参数的函数;}

我该怎么做?


好的,这是一个例子

void WearSunStuff(whichSunscreen, whichSunglasses);

void OpenUmbrella(whichUmbrella);

void WearCoat(whichCoat);

然后我向 windows 望去,发现正在下雨。我最好打开我的伞。 但是我在家,我还不需要打开我最喜欢的黑伞。

If(FriendingIsCallingMeToGoOutside)
{

    OpenUmbrella(blackUmbrella);
    GoOutSideToMeetMyFriend();
}

或者…… 然后我查看 windows ,发现它真的是 co。我最好穿上我的外套。 但是我在家,我还不需要打开我最喜欢的黄色外套。

If(FriendingIsCallingMeToGoOutside)
{
WearCoat(yelloCoat);
GoOutSideToMeetMyFriend();
}
FutureCandidates futureCandidates = new FutureCandidates();

System.Reflection.MethodInfo func = futureCandidates.GetType().GetMethod("OpenUmbrella"); //OR WearCoat
if(FriendingIsCallingMeToGoOutside)
{
    func.Invoke(futureCandidates, new object[] { blackUmbrella });
    GoOutSideToMeetMyFriend();
}