【发布时间】:2012-01-07 14:49:18
【问题描述】:
谁能解释为什么这段代码有效:
public class AdministratorSettingValidationAttribute : Attribute
{
public AdministratorSettingValidationAttribute(AdministratorSettingDataType administratorSettingDataType)
{
DataType = administratorSettingDataType;
}
public AdministratorSettingValidationAttribute(AdministratorSettingDataType administratorSettingDataType, Type enumerationType)
{
DataType = administratorSettingDataType;
EnumerationType = enumerationType;
}
}
...但将其重构为使用可选参数:
public AdministratorSettingValidationAttribute(AdministratorSettingDataType administratorSettingDataType, Type enumerationType = null)
{
DataType = administratorSettingDataType;
EnumerationType = enumerationType;
}
...导致编译时错误: “属性参数必须是属性参数类型的常量表达式、typeof表达式或数组创建表达式”。
【问题讨论】:
标签: c# .net visual-studio-2010