91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

恭城| 灵璧县| 泾阳县| 遵化市| 天峻县| 达州市| 大新县| 定襄县| 普格县| 扎赉特旗| 怀柔区| 康马县| 孟津县| 吴旗县| 漳浦县| 建水县| 东至县| 义乌市| 常宁市| 桐梓县| 榆中县| 平遥县| 海安县| 安达市| 栾川县| 奉贤区| 泰宁县| 友谊县| 阳曲县| 镇原县| 灌阳县| 都昌县| 汾西县| 冕宁县| 扎鲁特旗| 民乐县| 商城县| 高尔夫| 儋州市| 广灵县| 襄樊市|