Может ли CodeDom создавать необязательные аргументы при генерации метода c #? - PullRequest
5 голосов
/ 20 января 2011

Может ли CodeDom создавать необязательные аргументы при генерации метода c # и предоставлять значение по умолчанию?

Например:

public void ExampleMethod(int required
                          , string optionalstr = "default string"
                          , int optionalint = 10)

Решение Я нашел простой обходной путь для этого, вы можете просто ввести значение по умолчанию в качестве части имени аргумента:

CodeParameterDeclarationExpression(typeof(int), "optionalint = 5");

Это работает для меня, потому что я использую CodeDom только для создания кода на C #. Это не будет работать, если вам нужно поддерживать несколько языков.

1 Ответ

5 голосов
/ 20 января 2011

Да.

Добавьте атрибут [Optional].
Чтобы указать значение по умолчанию, добавьте атрибут [[DefaultParameterValue(...)].(Если значением по умолчанию является 0 или null, этот атрибут можно опустить.

Я написал более подробное объяснение в своем блоге.

...