中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c#自定義Attribute獲取接口實現示例代碼

發布時間:2020-09-09 09:53:38 來源:腳本之家 閱讀:117 作者:麥葉 欄目:編程語言

一般的接口實現多態

定義接口

 interface Ipeople
 {
  void say();
 }

定義實現的類

 public class man : Ipeople
 {
  public void say()
  {
   MessageBox.Show("man");
  }
 }

 public class woman : Ipeople
 {
  public void say()
  {
   MessageBox.Show("woman");
  }
 }

一般實現的方法

c#自定義Attribute獲取接口實現示例代碼

升級版

添加自定義(這個網上好多)

c#自定義Attribute獲取接口實現示例代碼

實現類

c#自定義Attribute獲取接口實現示例代碼

調用方法

 private static void NewMethod(string tpye)
  {
   Ipeople ib = null;
   var types = AppDomain.CurrentDomain.GetAssemblies()
      .SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(Ipeople))))
      .ToArray();
   foreach (var v in types)
   {
    var attribute = v.GetCustomAttributes(typeof(NameAttribute), false).FirstOrDefault();
    if (attribute != null && ((NameAttribute)attribute).Name == tpye)
    {
     ib = (Ipeople)v.Assembly.CreateInstance(v.FullName);
     break;
    }
   }
   if (ib != null) ib.say();
  }

這個可以避免需要維護swich語句

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌海市| 宁明县| 民乐县| 江门市| 衡山县| 铜梁县| 临汾市| 聂荣县| 徐州市| 蒙城县| 延边| 扎兰屯市| 鸡西市| 策勒县| 江安县| 军事| 蓝山县| 拉萨市| 柳江县| 抚远县| 西丰县| 鹤山市| 叶城县| 高密市| 鄂尔多斯市| 湘潭县| 日土县| 靖州| 江永县| 洪雅县| 崇明县| 沈丘县| 维西| 石城县| 洞口县| 应用必备| 龙井市| 八宿县| 西峡县| 遵义市| 玛沁县|