自定义属性示例

来源:互联网 发布:java上机题库 编辑:程序博客网 时间:2024/05/21 19:39

本节具体表现前面的信息,并显示如何设计一个简单的属性来记录有关代码段作者的信息。该示例中的属性存储程序员的名字和级别,和关于该代码是否已被复查过的信息。该示例使用三个私有变量存储要保存的实际值。每个变量用获取和设置这些值的公共属性表示。最后,用两个必选参数定义构造函数。

[AttributeUsage(AttributeTargets.All)]
public class DeveloperAttribute : System.Attribute
{
       
    //Private fields.
    private string name;
    private string level;
    private bool reviewed;

    //This constructor defines two required parameters: name and level.

    public  DeveloperAttribute(string name,string level)
    {
        this.name = name;
        this.level = level;
        this.reviewed = false;
    }

    //Define Name property.
    //This is a read-only 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;}
    }
}

可通过下列方法之一,使用全名 DeveloperAttribute 或使用缩写名 Developer 来应用该属性。

[Developer("Joan Smith", "1")]
[Developer("Joan Smith", "1", Reviewed = true)]

第一个示例显示只用必选命名参数应用的属性,而第二个示例显示同时使用必选参数和可选参数应用的属性。

原创粉丝点击