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#基础知识---委托,匿名函数,lambda

    c#基础知识---委托,匿名函数,lambda

    这篇文章主要介绍了c# 委托,匿名函数,lambda的相关知识,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C#面向对象实现图书管理系统

    C#面向对象实现图书管理系统

    这篇文章主要为大家详细介绍了C#面向对象实现图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#数值转换-显式数值转换表(参考)

    C#数值转换-显式数值转换表(参考)

    就是在将一种类型转换成另外一种类型时,需要额外的代码来完成这种转换。
    2013-04-04
  • 在 Visual Studio 中查看反汇编代码

    在 Visual Studio 中查看反汇编代码

    这篇文章主要介绍了在 Visual Studio 中查看反汇编代码的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • C#中Dictionary类使用实例

    C#中Dictionary类使用实例

    这篇文章主要介绍了C#中Dictionary类使用实例,本文直接给出一个使用实例,包含一些Dictionary的基本用法,需要的朋友可以参考下
    2015-06-06
  • C#调用C++动态库接口函数和回调函数方法

    C#调用C++动态库接口函数和回调函数方法

    这篇文章主要介绍了C#调用C++动态库接口函数和回调函数方法,通过C++端编写接口展开内容,文章介绍详细具有一定的参考价值,需要的小伙伴可以参考一下
    2022-03-03
  • 基于Unity3D实现3D照片墙效果

    基于Unity3D实现3D照片墙效果

    Unity3D不仅仅可以开发游戏,还有非常多的开发方向。本文就将用Unity3D制作出一个3D照片墙的效果,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-03-03
  • C#中lock用法详解

    C#中lock用法详解

    这篇文章主要介绍了C#中lock用法,以实例形式详细分析了lock语句的用法及用途,需要的朋友可以参考下
    2014-11-11
  • C#如何给word文档添加水印

    C#如何给word文档添加水印

    这篇文章主要为大家详细介绍了C#如何给word文档添加水印的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • c# Winform同一数据源多个控件保持同步

    c# Winform同一数据源多个控件保持同步

    通过对控件属性设置数据源绑定,利用Windows数据更改通知这一特性,只要订阅(设定绑定)的控件都能接收到数据的变化通知。 通过DataBindings方法实现双向数据绑定
    2021-06-06

最新评论