• 特性


    Tpye类可以获得类的所有非私有的成员

    Class my=new Myclass();
    Type type=my.getType();
    type.Name//类的名字
    type.NameSpace//类的命名空间
    type.Assembly//类所在的程序集
    FieldInfo[] array= type.GetFields();//返回值为FieldInfo
    PropertyInfo[] array2=type.GetProperties();
    MethordInfo[] array3=type.GetMethords();
    

      程序集

    MyClass my=new Myclass();
    Assembly assembly=my.GetType().Assembly;
    assembly.FullName;
    Type[] types= assembly.GetTypes();//当前程序集所有的类

    加载程序集
    Assembly assembly=Assembly.Load();//
    Assembly assembly=Assemmbly.LoadFrom(string path)//

      Obselete特性

    [Obsolete("这个方法过时了,使用NewMethord方法")]//特性表示一个方法 被弃用了,
    static  void OldMethod()
    {
    console.WriteLine("Oldmethod");
    }
    static void NewMethord()
    {
    }
    

      Conditional特性

    [Conditional("IsTest")]
    static void Test1()
    {cw ("Test1");   }    
    static void Test2()
    {cw("Test2");}
    Main()
    {
    Test1();
    Test2();
    }
    要看'IsTest"有没有被定义,#define IsTest,如果定义了”Istest“,才会在Main()方法中调用。
    来控制方法是否可以被调用
    

      调用者信息特性

    访问文件路径,代码行数,调用成员名称,就是
    static void PrintOut(string str,[CallFilePath]string fileName="",[CallLineNmber]int lineNumber=0,[CallerMemberName]string methodName="")
    {cw(str)+fileName+lineNumber+methodName};
    

      DebuggerStepThrough特性(某些方法肯定不错,跳过这个方法)

    [DebuggerStrpThrough]//可以跳过debugger的单步调试,不进入该方法

    其他预定义特性

    CLScompliant声明可公开的成员应该被编译器检查是否符合CLS,兼容的程序集可以被任何.NET兼容的语言使用

    Serializable 结构可以被序列化  NonSerialized不可被序列化 DLLimport非托管代码实现 WebMethod应该被作为XML web服务的一部分暴露,AttributeUsage声明特性能应用到什么类型的程序结构,将这个特性用到特性声明上

  • 相关阅读:
    BZOJ1176: [Balkan2007]Mokia
    BZOJ1251: 序列终结者
    BZOJ1087: [SCOI2005]互不侵犯King
    Mike and gcd problem CodeForces
    Bank Hacking CodeForces
    Ilya And The Tree CodeForces
    欢迎使用CSDN-markdown编辑器
    Folding UVA
    Cake slicing UVA
    Headmaster's Headache UVA
  • 原文地址:https://www.cnblogs.com/1521681359qqcom/p/11367047.html
Copyright © 2020-2023  润新知