這篇文章主要給大家介紹了關於c#自定義Attribute獲取接口實現的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
一般的接口實現多態
定義接口
interface Ipeople { void say(); }
定義實現的類
public class man : Ipeople { public void say() { MessageBox.Show("man"); } } public class woman : Ipeople { public void say() { MessageBox.Show("woman"); } }
一般實現的方法
升級版
添加自定義(這個網上好多)
實現類
調用方法
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語句
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。