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

 更新时间:2019年09月22日 09:31:36   作者:麦叶  
这篇文章主要给大家介绍了关于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#实现PDF页面合并的示例代码

    C#实现PDF页面合并的示例代码

    这篇文章主要为大家介绍了如何利用C#及vb.net来实现合并PDF页面内容,文中的示例代码讲解详细,对我们学习C#有一定帮助,感兴趣的小伙伴可以了解一下
    2022-04-04
  • C#生成漂亮验证码完整代码类

    C#生成漂亮验证码完整代码类

    本文主要介绍了C#生成漂亮验证码的完整代码类。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Unity实现瞄准镜效果

    Unity实现瞄准镜效果

    这篇文章主要为大家详细介绍了Unity实现瞄准镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 基于WPF实现验证码控件

    基于WPF实现验证码控件

    这篇文章主要介绍了如何利用WPF实现一个简单的验证码控件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,需要的可以参考一下
    2022-08-08
  • C# 对象映射的高性能方案

    C# 对象映射的高性能方案

    这篇文章主要介绍了C# 对象映射的高性能方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,有需要的朋友可以借鉴参考下
    2020-12-12
  • C#实现延时并自动关闭MessageBox的方法

    C#实现延时并自动关闭MessageBox的方法

    这篇文章主要介绍了C#实现延时并自动关闭MessageBox的方法,非常实用的功能,需要的朋友可以参考下
    2014-08-08
  • C# 使用Dapper与金仓数据库交互的实现步骤

    C# 使用Dapper与金仓数据库交互的实现步骤

    本文主要介绍了C# 使用 Dapper 与金仓数据库交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • 在.NET WebService中跨域CORS问题的解决方案

    在.NET WebService中跨域CORS问题的解决方案

    在现代的Web应用程序开发中,跨域资源共享(Cross-Origin Resource Sharing, CORS)问题是开发者经常遇到的一个挑战,在这篇博客中,我们将深入探讨如何在 .NET WebService 中解决CORS问题,帮助开发者顺利实现跨域请求,需要的朋友可以参考下
    2024-05-05
  • C#代码实现创建带结构标签的PDF文档

    C#代码实现创建带结构标签的PDF文档

    带标签的 PDF(也称为 PDF/UA)是一种包含结构化标签树的 PDF 文档,本文将介绍如何使用 Spire.PDF for .NET,在 C# 和 VB.NET 中从零开始创建一个带标签的 PDF 文档,有需要的可以了解下
    2026-03-03
  • C#使用DateTime获取日期和时间的实现

    C#使用DateTime获取日期和时间的实现

    在C#中,DateTime类是用来处理日期和时间的类,它具有许多属性和方法,用于操作和获取日期和时间的不同部分,本文就来介绍一下C#使用DateTime获取,感兴趣的可以了解一下
    2023-11-11

最新评论