CodeDom可以在生成ac#方法时创建可选参数吗?

Not*_*Dan 5 .net c# codedom

CodeDom可以在生成ac#方法时创建可选参数并提供默认值吗?

例如:

public void ExampleMethod(int required
                          , string optionalstr = "default string"
                          , int optionalint = 10)
Run Code Online (Sandbox Code Playgroud)

解决方案 我找到了一个简单的解决方法,您可以将默认值作为参数名称的一部分:

CodeParameterDeclarationExpression(typeof(int), "optionalint = 5");
Run Code Online (Sandbox Code Playgroud)

这适用于我b/c我只使用CodeDom来生成C#代码.如果您需要支持多种语言,它将无法工作.

SLa*_*aks 5

是.

添加[Optional]属性.
要指定默认值,请添加[[DefaultParameterValue(...)]属性.(如果默认值为0null,则可以省略此属性.

我在博客上写了更详细的解释.