属性构造函数的默认值?

mpe*_*pen 11 c# attributes

我收到这个错误,

错误CS0182:属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

当我尝试写这样的东西时

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class UrlAttribute : Attribute
{
    public UrlAttribute(string pattern, string name=null)
    {
        // ...
Run Code Online (Sandbox Code Playgroud)

它甚至没有显示行号,但是当我拿出那个=null位时它会消失.

实际上,错误只发生当我提供一个默认值,并依靠它(即我忽略它)像这样

    [Url("/index")]
Run Code Online (Sandbox Code Playgroud)

我很想知道为什么这个?"null"如何不是常量表达式?

kbr*_*ton 9

我叫'虫'.

我希望你不介意,我向微软报告了这个错误.

更新:

我今天收到了微软的以下反馈,重点补充说.

感谢您报告此问题,您遇到过Visual Studio!

我们在代码中的属性上修复了可选的字符串参数. 您将在VS 2010之后的Visual Studio版本中看到此修复程序.

亚历克斯特纳

项目经理

Visual Basic和C#编译器