• 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 }
  • 相关阅读:
    cookie、session和会话保持
    常见的一些专业术语的概念
    JS中的执行机制(setTimeout、setInterval、promise、宏任务、微任务)
    加密和解密
    ASCII 、UTF-8、Unicode编码
    localhost、127.0.0.1、本机ip、0.0.0.0 的区别
    使用Bootstrap框架的HTML5页面模板
    js判断是否在微信浏览器中打开
    js获取url的参数
    js动态生成下拉列表
  • 原文地址:https://www.cnblogs.com/wxylog/p/6097203.html
Copyright © 2020-2023  润新知