c# - 如何调用与现有方法同名的扩展方法?

标签 c# extension-methods

<分区>

我有这样的代码

public class TestA
{
    public string ColA { get; set; }
    public string ColB { get; set; }
    public string ColC { get; set; }
    public void MethodA()
    {
        MessageBox.Show("Original A1.");
    }
}

static class ExtenstionTest
{
  
    public static void MethodA(this TestA A1)
    {
        MessageBox.Show("Extended A1.");
    }
}

现在如果我像这样调用 MethodA

TestA a = new TestA();
        a.MethodA();

它将始终调用 Original 方法。如何调用扩展方法。

最佳答案

您不能将扩展方法作为普通扩展方法来调用。实例方法覆盖具有相同签名的扩展方法

编辑:

你可以把它当作一个静态方法来调用

ExtensionTest.MethodA(a);

关于c# - 如何调用与现有方法同名的扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13524372/

相关文章:

c# - 使用 IsInDateTimeRange 扩展 IQueryable

c# - 如何使用扩展方法将附加数据与现有对象相关联?

c# - 整数的 Math.Floor

c# - 在 View JQuery 中获取 ViewData

c#-3.0 - 扩展方法及其在软件工程中的影响(或者它真的是一个好主意吗?)

c# - 为什么此筛选器适用于 List<T> 而不适用于 IQueryable<T>?

c# - 如何编写返回动态对象的扩展方法?

c# - 从同一应用程序读取和写入 x86 和 x64 注册表项

c# - Windows 窗体在显示消息前等待 5 秒

c# - Postgresql/npgsql 在使用丹麦字母时无法写入