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