zoukankan      html  css  js  c++  java
  • (72)C# 特性

     一、C#自带特性

    1.AttributeUsage特性(自定义特性的特性)

    [AttributeUsage(validon,AllowMultiple=allowmultiple,Inherited=inherited)]

    (1)validon表示 特性可以提供给什么类型

    All  可以对任何应用程序元素应用属性
    Assembly  可以对程序集应用属性
    Class  可以对类应用属性
    Constructor  可以对构造函数应用属性
    Delegate   可以对委托应用属性
    Enum  可以对枚举应用属性
    Event  可以对事件应用属性
    Field  可以对字段应用属性
    GenericParameter  可以对泛型参数应用属性 目前,此属性仅可应用于 C#、Microsoft 中间语言 (MSIL) 和已发出的代码中
    Interface  可以对接口应用属性
    Method  可以对方法应用属性
    Module  可以对模块应用属性 Module 引用的是可移植可执行文件(.dll 或 .exe),而不是 Visual Basic 标准模块
    Parameter   可以对参数应用属性
    Property  可以对属性 (Property) 应用属性 (Attribute)
    ReturnValue  可以对返回值应用属性
    Struct  可以对结构应用属性,即值类型

    //表示该属性可以给类和方法用
    AttributeTargets.Class| AttributeTargets.Method

    (2)AllowMultiple 可选

    AllowMultiple = true 表示可以和其他特性叠加

    (3)Inherited 可选

    AllowMultiple = true 是否可以被继承

    2.Conditional特性

    调用的方式是否在debug或者release下执行

    class Program
        {
            static void Main(string[] args)
            {
                Program program = new Program();
                program.fuc();
            }
            //只有release下才执行
            //[Conditional("RELEASE")]
            //只有debug下才执行
            [Conditional("DEBUG")]
            void fuc()
            {
                Console.Write("OK");
            }
        }

    3.Obsolete

    标记方法过时

     还可以添加第二个参数,参数2是bool值

    参数2为true时,编译时直接报错,不允许编译,直接报错

     

    二、Attribute类

  • 相关阅读:
    【ACM-ICPC 2018 南京赛区网络预赛 L】Magical Girl Haze
    【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
    【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) B】Reach Median
    工作总结二
    学习总结
    快速WCF
    EF+linq的增删改查
    JAVASCRIPT闭包以及原型链
    CSS声明各个浏览器私有属性的命名前缀
    mvc的model验证,ajaxhelper,验证机制语法
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/12775138.html
Copyright © 2011-2022 走看看