亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁(yè) > IT技術(shù) > Windows編程 > 正文

              C#中的特性
              2021-08-07 23:34:56

              一:前言

              通過(guò)特性與代碼(程序集、類(lèi)型、方法、屬性等)相關(guān)聯(lián)。特性與程序?qū)嶓w關(guān)聯(lián)后,即可在運(yùn)行時(shí)使用反射技術(shù)查詢(xún)特性
              可以通過(guò)使用特性向程序添加聲明性信息,一個(gè)聲明性標(biāo)簽是通過(guò)放置在它所應(yīng)用的元素前面的方括號(hào)[ ]來(lái)描述的


              二:使用

              ——Conditional
              可以為一個(gè)方法添加Conditional特性使這個(gè)方法的執(zhí)行依賴(lài)于指定的預(yù)處理標(biāo)識(shí)符

              #define Debug
              
              using System;
              using System.Diagnostics;
              
              class MainClass
              {
                  public static void Main()
                  {
                      Fun1();
                      Fun2();
                  }
              
                  [Conditional("Debug")]
                  public static void Fun1()
                  {
                      Console.WriteLine("Fun1");
                  }
              
                  public static void Fun2()
                  {
                      Console.WriteLine("Fun2");
                  }
              }

              ?

              ?

              ——Obsolete
              可以為類(lèi)、屬性、字段、方法添加Obsolete特性使這個(gè)目標(biāo)元素標(biāo)記為過(guò)時(shí)的
              Obsolete特性的第二個(gè)參數(shù)是否為error默認(rèn)為false,不影響編譯通過(guò)只會(huì)提示warning,如果為true則編譯不會(huì)通過(guò)

              public class Test
              {
                  [Obsolete]
                  public int a;
              
                  [Obsolete("use a instead")]
                  public int b;
              
                  [Obsolete("", true)]
                  public void Fun(){}
              }

              ?

              ?

              ——自定義特性
              步驟:
              ——構(gòu)建一個(gè)自定義特性[AttributeUsage()]
              ——編寫(xiě)一個(gè)自定義特性類(lèi),類(lèi)名必須以Attribute結(jié)尾并繼承自Attribute類(lèi)
              ——將定位的參數(shù)通過(guò)構(gòu)造函數(shù)傳遞(每個(gè)自定義特性類(lèi)必須至少有一個(gè)構(gòu)造函數(shù))
              ——通過(guò)反射檢索到特性信息

              using System;
              
              class MainClass
              {
                  public static void Main()
                  {
                      Test test = new Test();
                      Type t = test.GetType();
                      object[] o = t.GetCustomAttributes(true);
                      TestAttribute attribute = (TestAttribute)o[0];
                      Console.WriteLine(attribute.msg);
                  }
              }
              
              [Test("這是測(cè)試類(lèi)")]
              public class Test { }
              
              [AttributeUsage(AttributeTargets.All)]
              public class TestAttribute : Attribute
              {
                  public string msg;
              
                  public TestAttribute(string msg)
                  {
                      this.msg = msg;
                  }
              }

              ?

              本文摘自 :https://blog.51cto.com/u

              開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >