C# C# Attribute特性 (四)
来源:互联网 发布:哪本书讲lms rls算法 编辑:程序博客网 时间:2024/05/22 03:44
C# Attribute 例子
一个简单的演示的例子
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace A0070_CustomAttributes.Sample
{
/// <summary>
/// 这个类为其他类定义 附加属性
/// </summary>
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct)]
class Creator : System.Attribute
{
String name;
String date;
String version;
/// <summary>
/// 构造函数.
/// </summary>
/// <param name="name"> 用户名 </param>
/// <param name="date"> 日期 </param>
/// <param name="version"> 版本 </param>
public Creator(String name, String date, String version)
{
this.name = name;
this.date = date;
this.version = version;
}
/// <summary>
/// 显示细节信息.
/// </summary>
public void ShowInfo()
{
Console.WriteLine("name : {0}", name);
Console.WriteLine("date : {0}", date);
Console.WriteLine("version : {0}", version);
}
}
/// <summary>
/// 用于 测试 属性类的
/// </summary>
[Creator("Edward", "2010.9.15", "1.0")]
class Test1
{
}
/// <summary>
/// 用于 测试 属性类的
/// </summary>
[Creator("Kimi", "2010.9.14", "1.2")]
class Test2
{
}
/// <summary>
/// 用于 测试 属性类的
///
/// 注意: 这里的 Test3 继承了 Test2
///
/// Test2 与 Test3 均有属性
/// </summary>
[Creator("Ivy", "2010.9.13", "1.1")]
class Test3 : Test2
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using A0070_CustomAttributes.Sample;
namespace A0070_CustomAttributes
{
class Program
{
public static void PrintAttributeInfo(Type classType)
{
Console.WriteLine("{0}这个类的属性如下:", classType);
object[] attr = classType.GetCustomAttributes(true);
foreach (object o in attr)
{
Console.WriteLine("Attribute {0}", o);
// 假如对象是 Creator 的实例,那么再调用 具体的方法.
if (o is Creator)
{
((Creator)o).ShowInfo();
}
}
}
static void Main(string[] args)
{
PrintAttributeInfo(typeof(Test1));
PrintAttributeInfo(typeof(Test2));
PrintAttributeInfo(typeof(Test3));
Console.ReadLine();
}
}
}
运行结果如下:
A0070_CustomAttributes.Sample.Test1这个类的属性如下:
Attribute A0070_CustomAttributes.Sample.Creator
name : Edward
date : 2010.9.15
version : 1.0
A0070_CustomAttributes.Sample.Test2这个类的属性如下:
Attribute A0070_CustomAttributes.Sample.Creator
name : Kimi
date : 2010.9.14
version : 1.2
A0070_CustomAttributes.Sample.Test3这个类的属性如下:
Attribute A0070_CustomAttributes.Sample.Creator
name : Ivy
date : 2010.9.13
version : 1.1
- C# C# Attribute特性 (四)
- C# 特性(Attribute)(一)
- C# 特性(Attribute)(二)
- C#特性(Attribute)
- C#特性(Attribute)
- C# 特性(Attribute)
- C# Attribute特性 (一)
- C# Attribute特性 (二)
- C# Attribute特性 (三)
- C# Attribute 特性 学习
- C#特性Attribute
- C# 中的Attribute 特性
- C#中的attribute特性
- C# attribute特性实例
- C# 特性(Attribute)
- C# attribute(特性)
- C# 特性(Attribute)
- C#特性Attribute
- c# 计算时间间隔的方法
- 命令行使用小技巧与SHELL编程 - vi 日常操作搜集帖
- Jsp学习
- 问题一百一十三:Palindromes _easy version
- JSTL标签使用简单列举
- C# C# Attribute特性 (四)
- Unix下各种压缩包解压方式
- Ultra-QuickSort poj 2299--树状数组求逆序数
- Win7系统盘越来越小,系统盘清理技巧
- C#调用带有参数的SQL存储过程
- ubuntu12.04 安装mysql-workbench时 无法安装成功的解决办法
- 数据库三大范式详解
- gSoap开发Web Service 既soapcpp2.exe生成服务端和客户端的代码具体方法
- 访问父类中的被覆盖成员、初始化父类构造函数