c#自定義Attribute獲取接口實現(xiàn)示例代碼
更新時間:2019年09月22日 09:31:36 作者:麥葉
這篇文章主要給大家介紹了關于c#自定義Attribute獲取接口實現(xiàn)的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
一般的接口實現(xiàn)多態(tài)
定義接口
interface Ipeople
{
void say();
}
定義實現(xiàn)的類
public class man : Ipeople
{
public void say()
{
MessageBox.Show("man");
}
}
public class woman : Ipeople
{
public void say()
{
MessageBox.Show("woman");
}
}
一般實現(xiàn)的方法

升級版
添加自定義(這個網(wǎng)上好多)

實現(xiàn)類

調(diào)用方法
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語句
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
相關文章
C#實現(xiàn)延時并自動關閉MessageBox的方法
這篇文章主要介紹了C#實現(xiàn)延時并自動關閉MessageBox的方法,非常實用的功能,需要的朋友可以參考下2014-08-08
C# 使用Dapper與金倉數(shù)據(jù)庫交互的實現(xiàn)步驟
本文主要介紹了C# 使用 Dapper 與金倉數(shù)據(jù)庫交互,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-12-12
在.NET?WebService中跨域CORS問題的解決方案
在現(xiàn)代的Web應用程序開發(fā)中,跨域資源共享(Cross-Origin?Resource?Sharing,?CORS)問題是開發(fā)者經(jīng)常遇到的一個挑戰(zhàn),在這篇博客中,我們將深入探討如何在?.NET?WebService?中解決CORS問題,幫助開發(fā)者順利實現(xiàn)跨域請求,需要的朋友可以參考下2024-05-05
C#代碼實現(xiàn)創(chuàng)建帶結(jié)構標簽的PDF文檔
帶標簽的?PDF(也稱為?PDF/UA)是一種包含結(jié)構化標簽樹的?PDF?文檔,本文將介紹如何使用?Spire.PDF?for?.NET,在?C#?和?VB.NET?中從零開始創(chuàng)建一個帶標簽的?PDF?文檔,有需要的可以了解下2026-03-03

