C#使用“EXEC”命令打印变量
问题描述:
在python中打印11个变量列表,我会这样做使用“Exec”。有11个项目的列表,这些代码将它们全部打印出来。C#使用“EXEC”命令打印变量
for count in range(1,11):
question = ("print " + "question" + str(count))
exec question
我该如何在C#中做类似的事情? (不使用名单)
这里是我到目前为止
string line;
for (int i = 1; i < 200; i++)
{
line = ("Console.WriteLine(scene1_f"+i);
// Execute "line"
}
感谢。
答
我认为,如果您在尝试使用某些东西时阅读了c#语言中的一些内容,这将是明智之举。同时,如果在尝试回答这些问题之前查阅了一些Python教程,这将是明智的。
尽管c#支持动态类型和表达式,但它主要用于创建“强类型”结构。对于你提供的例子,我相信没有简单/简单的直接翻译。
您的“scene1_f1”到“scene1_f200”变量可能会是一些c#类型的实例,如Scene
类,它具有对对象实例进行操作的一些属性和方法。
如果您有多个Scene
对象要对其执行相同类型的操作(如将它们打印到控制台,如您的示例中所示),通常认为以某种方式对它们进行分组是很好的做法,例如添加他们到一个列表或将它们存储在一个数组中。
为了说明我的意思我添加了一个假设的例子:
public class Scene
{
public Scene(string name)
{
Name = name;
}
public string Name { get; set; }
// ... more properties
public void Draw()
{
// logic for drawing
}
// ... more methods.
public override string ToString()
{
// here return what you would want to have as
// a string representation of a Scene object.
return "Scene " + Name;
}
}
// in a different part of your code, create and add the Scene objects
var scenesList = new List<Scene>();
scenesList.Add(new Scene("Some scene name"));
// add more
// Now you can print them to the console like this:
foreach (var scene in scenesList)
Console.WriteLine(scene);
什么Python做'exec'命令? – Shaharyar
不要这样做。使用一个数组而不是200个不同的变量。 – Blorgbeard
@blorgbeard你的建议如何帮助实现OP要求的问题:“我将如何在C#中做类似的事情?(不使用列表)” – Alex