c#类扩展器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#类扩展器相关的知识,希望对你有一定的参考价值。

我可能在这里还很遥远,但我想我记得很早以前就读过,有一种方法可以扩展现有的类并覆盖其现有的功能。

例如,有没有办法采用LinkBut​​ton并将其扩展为公开新方法或属性?有没有一种方法可以覆盖现有方法/属性?喜欢NavigateURL吗?

我不是在谈论子类,而是在讨论扩展。我要离开这里吗?

谢谢

答案
public static class Extensions 
  public static void NavigateURL(this LinkButton lb, string url) 
    // do something
  

项目中的每个LinkBut​​ton现在都将具有此方法(没有第一个参数)。第一个参数使用前缀“ this”,并且是您要扩展的类型,其余为方法参数...

另一答案

您在谈论扩展方法吗?

http://msdn.microsoft.com/en-us/library/bb383977.aspx

另一答案

听起来像直接继承的类

public class MyLinkButton : LinkButton

    //you can then override any method/property (intellisense will guide you)
    public override bool Enabled
    
        get
        
            return base.Enabled;
        
        set
        
            base.Enabled = value;
        
    

据我所知,您只能在基类中覆盖虚拟,抽象或已经被覆盖的方法/属性。

另一答案

是的,有一种方法可以通过使用类扩展来扩展类功能。为了获得更多帮助,您可以参考本文。https://www.geeksforgeeks.org/extension-method-in-c-sharp/

以上是关于c#类扩展器的主要内容,如果未能解决你的问题,请参考以下文章

节:引导类扩展类以及系统类加载器的使用和演示

节:引导类扩展类以及系统类加载器的使用和演示

使用 Sass 从媒体查询中扩展选择器

使用基类装饰器扩展组件装饰器

JVM学习总结

类装饰器上的打字稿文档-返回“类扩展构造函数”的函数