服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - c#自定义Attribute获取接口实现示例代码

c#自定义Attribute获取接口实现示例代码

2022-08-07 11:44麦叶 C#

这篇文章主要给大家介绍了关于c#自定义Attribute获取接口实现的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

一般的接口实现多态

定义接口

?
1
2
3
4
interface ipeople
{
 void say();
}

定义实现的类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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获取接口实现示例代码

调用方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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语句

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。

原文链接:https://www.maiyewang.com/2019/09/18/c自定义attribute获取接口实现-2/

延伸 · 阅读

精彩推荐
  • C#C#制作简易的屏保

    C#制作简易的屏保

    这篇文章主要为大家详细介绍了C#制作简易的屏保的相关资料,C#如何制作屏保的过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    邪心魔佛一页书5902021-12-16
  • C#C#生成Word文件(图片、文字)

    C#生成Word文件(图片、文字)

    这篇文章主要为大家详细介绍了C#生成Word文件,包括图片、文字等素材,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Daniel7995122022-07-24
  • C#C# WPF ListView控件的实例详解

    C# WPF ListView控件的实例详解

    这篇文章主要介绍了C# WPF ListView控件的实例详解的相关资料,希望通过本能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下...

    weixinhum5492022-01-24
  • C#C#控件Picturebox实现鼠标拖拽功能

    C#控件Picturebox实现鼠标拖拽功能

    这篇文章主要为大家详细介绍了C#控件Picturebox实现鼠标拖拽功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Tomorrow Never Comes4182022-03-01
  • C#C#使用二分查找法判断指定字符的方法

    C#使用二分查找法判断指定字符的方法

    这篇文章主要介绍了C#使用二分查找法判断指定字符的方法,结合实例形式分析了C#二分查找法进行字符串查找的定义与使用技巧,需要的朋友可以参考下...

    吕秀才6442021-11-25
  • C#同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输)

    同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输

    这篇文章主要给大家介绍了关于同时兼容JS和C#的RSA加密解密算法,通过该算法可以对web提交的数据进行加密传输,文中通过图文及示例代码介绍的非常详细...

    JackWang-CUMT8912022-01-19
  • C#利用unity代码C#封装为dll的步骤分享

    利用unity代码C#封装为dll的步骤分享

    这篇文章主要给大家介绍了关于利用unity代码C#封装为dll的相关资料,文中通过图文将实现的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学...

    woweinierlai9012022-02-23
  • C#C#基于cookie实现的购物车功能

    C#基于cookie实现的购物车功能

    这篇文章主要介绍了C#基于cookie实现的购物车功能,结合完整实例形式分析了C#基于cookie创建购物车的具体步骤与相关技巧,需要的朋友可以参考下...

    加菲猫的狗9972021-11-08