zoukankan      html  css  js  c++  java
  • 010. 使用.net框架提供的属性

    C#允许在类和类成员上声明特性(类), 可在运行时解释类和类的成员. 这个特性也称为属性, 使用Attribute.下面演示如何使用.net框架提供的属性. 

     1 using System; 
     2 using System.Reflection;
     3 public partial class _Default : System.Web.UI.Page 
     4 {
     5     //自定义属性类
     6     [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
     7     public class BookAttribute : Attribute //Attribute 自定义属性的基类
     8     {
     9         private string BookName;
    10         public BookAttribute(string BookName)
    11         {
    12             this.BookName = BookName;
    13         }
    14         public string Book
    15         {
    16             get
    17             {
    18                 return BookName;
    19             }
    20         }
    21     }
    22 
    23     //多次使用属性类
    24     [Book("Asp.net入门基础;")]
    25     [Book("C#实战案例")]
    26     public class BookInfo
    27     {
    28         public string binfo = "图书信息***********";
    29         public BookInfo()
    30         {
    31 
    32         }
    33     }
    34 
    35     //页面的page_load调用自定义的属性示例
    36     protected void Page_Load(object sender, EventArgs e)
    37     {
    38         //实例化BookInfo类
    39         BookInfo bf = new BookInfo();
    40         //对象数组
    41         object[] Bookattr;
    42         //获取对象类型, 获取有关成员特性的信息并提供对成员元数据的访问
    43         MemberInfo Typeinfo = typeof(BookInfo);
    44         //提取类型是属性类的成员
    45         Bookattr = Typeinfo.GetCustomAttributes(typeof(BookAttribute), false);
    46         if (Bookattr.GetLength(0) != 0)
    47         {
    48             BookAttribute ba = (BookAttribute)(Bookattr[0]);//获取属性类的第一个成员
    49             BookAttribute ba2 = (BookAttribute)(Bookattr[1]);//获取属性类的第二个成员
    50             Response.Write(bf.binfo);
    51             Response.Write("<br/>");
    52             Response.Write("图书名称:" + ba.Book + ba2.Book);
    53         }   
    54     }
    55 }
  • 相关阅读:
    Linux菜鸟起飞之路【三】Linux常用命令
    Linux菜鸟起飞之路【二】Linux基本常识
    Linux菜鸟起飞之路【一】基本知识与Linux的安装
    交换机和路由器区别
    netdom join more ou
    keepalive.conf配置模板
    mysql7.7.22 Gtid主从搭建
    python 列表处理
    python openpyxl模块使用
    mysql5.7
  • 原文地址:https://www.cnblogs.com/wxylog/p/6097203.html
Copyright © 2011-2022 走看看