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.
The example
C#
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:
C#
[Help("http://www.mycompany.com/.../Class1.htm")]
class Class1
{
...
}
[Help("http://www.mycompany.com/.../Misc.htm", Topic = "Class2")]
class Class2
{
...
}
沒有留言:
張貼留言