问题 如何使用循环更改为要调用的函数的名称

怜悯G.

新成员
加入
3月10日,2021年
消息
2
编程经验
1-3
大家好,
我有一个名为ex1(),ex2(),ex3(),...,ex8()的多个void福彩12选5走势图的Visual Studio项目。
我想在主函数中调用它们,一个接一个,所以在控制台上,我连续显示所有练习。
是否可以创建一个更改福彩12选5走势图名称的循环(从1到8)"Ex"+数字,并呼叫该福彩12选5走势图?
我试过这个,但它不起作用:
C#:
string Exo;
for (int z = 1; z <= 8; z++)
{
     Exo = "Ex"+z;
     Exo();
}

感谢您的帮助,
马丁
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,887
地点
切萨皮克,va.
编程经验
10+
不幸的是,除非你开始使用反射,否则没有一种简单的福彩12选5走势图,因为C#是一种早期的语言。它不像很多解释语言一样迟到。

实现您想要的是一个相对简单的福彩12选5走势图是制作一个委托列表并迭代列表调用每个人。
C#:
void Ex1() => Console.WriteLine("A");
void Ex2() => Console.WriteLine("B");
void Ex3() => Console.WriteLine("C");

void Run()
{
    var methods = new List<Action>()
    {
        Ex1,
        Ex2,
        Ex3,
    };

    foreach(var method in methods)
        method();
}
 

怜悯G.

新成员
加入
3月10日,2021年
消息
2
编程经验
1-3
谢谢你的快速和清晰的答案,
我知道你是如何做到的,但你仍然需要单独编写所有名字,这将击败功能的目的......
我想我正在努力让我的生活变得有点太容易 ðÿ〜“
再次感谢,
马丁
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,887
地点
切萨皮克,va.
编程经验
10+
您需要进行反射的代码量加上使用反射引入的添加不确定性将是您需要重量的东西,以便在不必单独列出每个福彩12选5走势图的便利性。如果您列出不存在的福彩12选5走势图,则编译器可以节省您。如果在速度上撰写该福彩12选5走势图的名称,并使用反射,则应有代码处理组合名称没有相应的福彩12选5走势图。 (或者,您可以使用反射枚举所有福彩12选5走势图,并且仅调用与特定模式匹配的福彩12选5走势图。)
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,719
地点
悉尼,澳大利亚
编程经验
10+
使用反射来保存自己只是几行代码是边界疯狂。如果你有数百种福彩12选5走势图来电,那么我可能会看到这种情况,但八个?你发布的代码已经六行,所以你真的省了什么?这是一个虚假的经济。
 
最佳 底部