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 中创建命名参数?
解决方案
不,这不能使用 CodeDOM 完成(不使用您建议的代码片段)。命名参数是由 C# 编译器处理的语法糖。
使用 CodeDOM,您需要为每个参数提供一个值,即使它是null
.
推荐阅读
- reactjs - img 是一个 void 元素标签,不能有 `children` 也不能使用 `dangerouslySetInnerHTML`
- excel - 使用 VBA 粘贴到 Outlook 中的位图始终为空白/白色
- javascript - React firebase 移动 OTP 身份验证问题:无法读取未定义的属性(读取“验证”)
- python - 基于外部触发器在 econ see3cam 上捕获图像
- html - Firefox 中不一致的响应式布局行为。刷新后调整大小
- spring-boot - Spring Cloud Stream - 测试功能生产者
- firebase - Firebase 安全规则——使用用户文档中的属性
- python - 如何循环和优化数据提取 - Python
- javascript - 错误:products.map 不是函数 Mern Stack
- asp.net-core - 如何在不按 CTRL 键的情况下使用 ASP.NET 在选择元素中选择多个项目?