zoukankan      html  css  js  c++  java
  • NET 技术FAQ(六)属性

    6. 属性
    6.1 什么是属性?
    最少有两种类型的 .NET 属性。第一类我称其为 metadata 属性—它允许将某些数据附加到类或方法上。这些数据称为类的 metadata 的一部分,并且可以像类的其它 metadata 一样通过映射来访问。metadata 的另一种属性是 [serializable],将它附加到类上表示类的实例可以被串行化。
    [serializable] public class CTest {}
    另一种类型的属性是上下文属性。上下文类型的属性使用和 metadata 相似的语法,但实际上它们是不同的。上下文类型属性提供一种解释机制,通过这种机制,实例的活动和方法调用可以是预先处理和/或随后处理的。如果你了解 Keith Brown 的通用委托器你可能熟悉这种思想。
     
    6.2 我能创建自己的 metadata 属性吗?
    是的。简单地从 System.Attribute 导出一个类并将其标记为 AttributeUsage 属性。例如:
    [AttributeUsage(AttributeTargets.Class)]
    public class InspiredByAttribute : System.Attribute
    {
     public string InspiredBy;

     public InspiredByAttribute( string inspiredBy )
     {
      InspiredBy = inspiredBy;
     }
    }


    [InspiredBy("Andy Mc's brilliant .NET FAQ")]
    class CTest
    {
    }
    class CApp
    {
     public static void Main()
     {
                 object[] atts = typeof(CTest).GetCustomAttributes();
                 foreach( object att in atts )
                 if( att is InspiredByAttribute )
                  Console.WriteLine( "Class CTest was inspired by {0}", _
         ((InspiredByAttribute)att).InspiredBy  );
     }
    }
  • 相关阅读:
    git_02_git常用操作命令
    git_01_上传第一个项目至git
    Jenkins持续集成_04_解决HTML测试报告样式丢失问题
    Jenkins持续集成_03_添加测试报告
    Jenkins持续集成_02_添加python项目&设置定时任务
    Jenkins持续集成_01_Mac安装配置
    Mac获取Jenkins管理员初始密码
    (appium+python)UI自动化_10_adb常用命令
    安卓monkey自动化测试,软硬回车
    冒烟测试
  • 原文地址:https://www.cnblogs.com/shf/p/806719.html
Copyright © 2011-2022 走看看