简体   繁体   中英

Can CodeDom create optional arguments when generating a c# method?

Can CodeDom create optional arguments when generating ac# 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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM