C#使用“EXEC”命令打印变量

时间:2013-08-26 01:04:36

标签: c# python exec

在python中打印11个变量的列表,我会使用“Exec”。有一个包含11个项目的列表,此代码将打印出来。

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"
  }  

感谢。

1 个答案:

答案 0 :(得分:1)

我认为,如果你在尝试使用c#语言的时候阅读一些东西,那将是明智之举。同时,如果我在尝试回答这些问题之前查阅了一些Python教程,那将是明智的。

虽然c#支持动态类型和表达式,但它主要用于创建&#34;强类型&#34;结构体。对于您提供的示例,我相信没有简单/简单的直接翻译。

你的&#34; scene1_f1&#34;通过&#34; scene1_f200&#34;变量可能是某些c#类型的实例,如Scene类,它具有一些在对象实例上运行的属性和方法。

如果你有多个Scene对象要执行相同类型的操作(比如在示例中将它们打印到控制台),通常认为以某种方式对它们进行分组是很好的做法,例如将它们添加到List或将它们存储在Array中。

为了说明我的意思,我添加了一个假设的例子:

 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);