欢迎来到入门教程网!

C#教程

当前位置:主页 > 软件编程 > C#教程 >

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

来源:本站原创|时间:2020-01-10|栏目: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#关于JWT跨域身份验证的实现代码

栏    目:C#教程

下一篇:C#实现排序的代码详解

本文标题:c#自定义Attribute获取接口实现示例代码

本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/4638.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有