这篇文章主要给大家介绍了关于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语句
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对编程学习网的支持。
沃梦达教程
本文标题为:c#自定义Attribute获取接口实现示例代码
基础教程推荐
猜你喜欢
- 一个读写csv文件的C#类 2022-11-06
- C#类和结构详解 2023-05-30
- C# windows语音识别与朗读实例 2023-04-27
- C#控制台实现飞行棋小游戏 2023-04-22
- ZooKeeper的安装及部署教程 2023-01-22
- C# List实现行转列的通用方案 2022-11-02
- C# 调用WebService的方法 2023-03-09
- winform把Office转成PDF文件 2023-06-14
- unity实现动态排行榜 2023-04-27
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26