Positional and named parameters

Attribute classes can have positional parameters and named parameters. Each public instance constructor for an attribute class defines a valid sequence of positional parameters for that attribute class. Each non-static public read-write field and property for an attribute class defines a named parameter for the attribute class.
[Example: The example using System; [AttributeUsage(AttributeTargets.Class)] public class HelpAttribute: Attribute { public HelpAttribute(string url) { // url is a positional parameter ... } public string Topic { // Topic is a named parameter get {...} set {...} } public string Url { get {...} } } defines an attribute class named HelpAttribute that has one positional parameter (string url) and one named parameter (string Topic). Although it is non-static and public, the property Url does not define a named parameter, since it is not read-write.
This attribute class might be used as follows: [Help("http://www.mycompany.com/.../Class1.htm")] class Class1 { } [Help("http://www.mycompany.com/.../Misc.htm", Topic ="Class2")] class Class2 { } end example]