【问题标题】:CodeDOM: Named ArgumentsCodeDOM:命名参数
【发布时间】:2018-12-19 14:48:55
【问题描述】:

我正在尝试为构造函数调用生成代码。类似的东西

var obj = new Foo("bar", "baz", thirdParam: 5);

我的部分代码:

var arg1 = new CodePrimitiveExpression("bar");
var arg2 = new CodePrimitiveExpression("baz");
var arg3 = new CodePrimitiveExpression(5);

var objectCreate = new CodeObjectCreateExpression(typeof(Foo), arg1, arg2, arg3);

var decl = new CodeVariableDeclarationStatement("var", "obj", objectCreate);

这是生成的:

var obj = new Foo("bar", "baz", 5);

有没有办法(除了使用 CodeSnippetExpression)在 CodeDOM 中创建命名参数?

【问题讨论】:

  • 您想使用 CodeDom 调用具有命名参数的方法/构造函数,还是使用命名参数构建方法/构造函数?
  • @AmirOveisi 前者。生成的代码应该像上面的第一行代码

标签: c# codedom


【解决方案1】:

不,这不能使用 CodeDOM 完成(不使用您建议的代码片段)。命名参数是由 C# 编译器处理的 syntactic sugar

使用 CodeDOM,您需要为每个参数提供一个值,即使它是 null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多