【问题标题】:Roslyn: Declare variables and then list themRoslyn:声明变量,然后列出它们
【发布时间】:2017-12-28 16:18:18
【问题描述】:

我正在寻找的似乎与 Roslyn 编译器的脚本和编译功能重叠,因此我对应该使用哪一个感到困惑。

我想在进行过程中声明/定义变量(并评估它们的值),并在某些时候按名称/类型列出。我需要 CodeAnalysis 包或编译器吗?以及如何?

例子:

// I'd like to add the following to my scripting or compilation engine:
int a = 1 + 2;
string b = "some " + a;
// and then get a listing of their names, types, and values:
foreach(var myvar in script.ListVariables())
  Console.WriteLine(myvar.Name + " " + myvar.Type + " " + myvar.Value.ToString());

【问题讨论】:

    标签: c# roslyn roslyn-code-analysis


    【解决方案1】:

    其实我找到了答案,而且很简单。我所需要的只是脚本引擎。为了获取变量,我做了类似于以下 sn-p 中最后一行的操作:

            var script = CSharpScript.Create("");
            script = script.ContinueWith("int a = 10;");
            script = script.ContinueWith("int b = 20;");
    
            var vars = script.RunAsync().Result.Variables;
            foreach(var v in vars)
            {
                Console.WriteLine($"{v.Name}, {v.Type}, {v.Value.ToString()}");
            }
    

    结果会是这样的:

    a, System.Int32, 10
    b, System.Int32, 20
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2019-10-27
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      相关资源
      最近更新 更多