Используя С# 2.0, я могу указать значение параметра по умолчанию, например:
static void Test([DefaultParameterValueAttribute(null)] String x) {}
Поскольку этот синтаксис С# 4.0 недоступен:
static void Test(String x = null) {}
Итак, существует ли эквивалент С# 2.0 для типов значений? Например:
static void Test(int? x = null) {}
Следующие попытки не компилируются.
// error CS1908: The type of the argument to the DefaultValue attribute must match the parameter type
static void Test([DefaultParameterValueAttribute(null)] int? x) {}
// error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression
static void Test([DefaultParameterValueAttribute(new Nullable<int>())] int? x) {}