CodeDOM:命名参数

时间:2018-12-19 14:48:55

标签: c# codedom

我正在尝试为构造函数调用生成代码。像

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中创建命名参数?

1 个答案:

答案 0 :(得分:1)

否,使用CodeDOM不能完成此操作(不建议您使用代码段)。命名参数由C#编译器处理syntactic sugar

使用CodeDOM,即使每个参数为null,也需要为每个参数提供一个值。