我可以创建一个用于属性参数的常量表达式吗?
Can I create a constant expression for use in attribute parameter?
回答这个问题的人都知道,属性的参数需要常量表达式。可选参数(对于任何东西,而不仅仅是属性)也需要常量表达式作为它们的默认值。
我遇到的(尽管是轻微的)不便与 RegularExpressionAttribute
的模式参数有关。我的数据模型中有许多使用此属性的属性(在 System.ComponentModel.DataAnnotations 中找到),每当我更改验证模式时,我都必须返回并进行更改 everryyywherrreee 。 . .真的很烦人。
我的问题。 . .
是否有一种 .net 结构可以声明、识别为常量表达式,然后可用于通常需要常量表达式的地方?
如果我可以在某处声明一个 RegexPatternForNameProperty = "^[a-zA-Z0-9,.# ]{1,150}$"
属性,然后根据需要更改那个值,那就太好了。
任何可以定义为 const
的东西都可以在属性中使用。所以你仍然限于编译时常量,但你不必直接使用字符串或数值。
public const string RegexPatternForNameProperty = "^[a-zA-Z0-9,.# ]{1,150}$";
[RegularExpression(RegexPatternForNameProperty)]
public string Name {get; set;}
回答这个问题的人都知道,属性的参数需要常量表达式。可选参数(对于任何东西,而不仅仅是属性)也需要常量表达式作为它们的默认值。
我遇到的(尽管是轻微的)不便与 RegularExpressionAttribute
的模式参数有关。我的数据模型中有许多使用此属性的属性(在 System.ComponentModel.DataAnnotations 中找到),每当我更改验证模式时,我都必须返回并进行更改 everryyywherrreee 。 . .真的很烦人。
我的问题。 . .
是否有一种 .net 结构可以声明、识别为常量表达式,然后可用于通常需要常量表达式的地方?
如果我可以在某处声明一个 RegexPatternForNameProperty = "^[a-zA-Z0-9,.# ]{1,150}$"
属性,然后根据需要更改那个值,那就太好了。
任何可以定义为 const
的东西都可以在属性中使用。所以你仍然限于编译时常量,但你不必直接使用字符串或数值。
public const string RegexPatternForNameProperty = "^[a-zA-Z0-9,.# ]{1,150}$";
[RegularExpression(RegexPatternForNameProperty)]
public string Name {get; set;}