title: Shall the attribute properties be virtual?
body: <p>At <a href="http://msdn.microsoft.com/en-us/library/84c42s56(v=vs.110).aspx#cpconcustomattributeexample" rel="nofollow">MSDN</a> an example to write a custom attribute shows the following strange behavior</p>
  
  <pre><code>[AttributeUsage(AttributeTargets.All)]
  public class MyAttribute : Attribute
  { 
    public virtual string Name
    {
      get {return name;}
    }
  
    // Define Level property. 
    // This is a read-only attribute. 
  
    public virtual string Level
    {
      get {return level;}
    }
  
    // Define Reviewed property. 
    // This is a read/write attribute. 
  
    public virtual bool Reviewed
    {
      get {return reviewed;}
      set {reviewed = value;}
    }
  }
  </code></pre>
  
  <p>Why all properties are virtual?</p>