6 out of 14 rated this helpful - Rate this topic

17.1.2 Positional and named parameters

Visual Studio .NET 2003

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.

The example

using System;
[AttributeUsage(AttributeTargets.Class)]
public class HelpAttribute: Attribute
{
   public HelpAttribute(string url) {      // Positional parameter
      ...
   }
   public string Topic {                  // Named parameter
      get {...}
      set {...}
   }
   public string Url {
      get {...}
   }

}

defines an attribute class named HelpAttribute that has one positional parameter, url, and one named parameter, 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.example.com/.../Class1.htm")]
class Class1
{
   ...
}
[Help("http://www.example.com/.../Misc.htm", Topic = "Class2")]
class Class2
{
   ...
}
Did you find this helpful?
(1500 characters remaining)