Can CodeDom create optional arguments when generating a c# method?
Can CodeDom create optional arguments when generating a c# method and provide a default value?
For example:
public void ExampleMethod(int required
, string optionalstr = "default string"
, int optionalint = 10)
开发者_运维百科Solution I've found a simple workaround for this, you can just put the default value in as part of the argument name:
CodeParameterDeclarationExpression(typeof(int), "optionalint = 5");
This works for me b/c I'm only using the CodeDom to produce C# code. It won't work if you need to support multiple languages.
Yes.
Add the [Optional]
attribute.
To specify the default value, add the [[DefaultParameterValue(...)]
attribute. (If the default value is 0
or null
, this attribute can be omitted.
I wrote a more detailed explanation on my blog.
精彩评论