45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:C#属性编程知识点分析

C#属性编程知识点分析

2016-09-07 03:56:13 来源:www.45fan.com 【

C#属性编程知识点分析

Attribute首先是一个类,在C#中, Attribute是作为编译器指令来处理的
在.NET中,属性的作用非常重要,无论是写WEB控件或是WEB服务,属性的作用几乎不可或缺,而序列化.程序安装特征等更离不开属性,看上去很神秘,其实写一个属于自己的属性也不难,在CodeProject和C#Corner上都有类似的示范代码.这下面只是普通属性,如果是AOP,则需要从ContextAttribute中继承,关于AOP以及ContextAttribute,以后的文章将会专门讲述,Code Project上也有相关的例子
using System;

namespace Test
{
// Only allow this attribute to be added to classes
[AttributeUsage(AttributeTargets.Class)]
public class TestAttribute : Attribute
{
// A number with some imaginary importance
public int TheNumber;

// A string that could be useful somewhere
public string Name;

// The only constructor requiring that
// TheNumber be set
public TestAttribute(int TheNumber)
{
this.TheNumber = TheNumber;
Name = "None";
}

// Method to illustrate that an attribute is really just
// a class at heart. This will be used in Driver.cs
public void PrintOut()
{
Console.WriteLine("/tTheNumber = {0}", TheNumber);
Console.WriteLine("/tName = /"{0}/"", Name);
}
}
}
上面就是一个属性类了,很简单的,注意的是,属性类前面必须加上AttributeUsage属性描述,里面的AttributeTargets定义了该属性的应用范围,比如只应用于方法还是类还是全部适用,在上面这段代码中,设置该属性只能被类使用
你就可以在自己的类中用上自己的属性了,比如
[Test(4, Name = "TestClassB")]
public class TestMyAtt
{}
仔细看,首先在TestAttribute 类的构造方法中,需要初始化TheNumber属性,所以,在用TestAttribute的时候,必须有整数值,而Name根据实际情况则可有可无了
实现自己的属性其实还是很有用处的,个人认为对实现AOP模式是大有裨益的.

 

本文地址:http://www.45fan.com/bcdm/73420.html
Tags: 属性 编程 Attribute
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部