编译器错误 CS1929

更新:2007 年 11 月

错误消息

实例参数: 无法从“typeA”转换为“typeB”。

在尝试从没有扩展某个扩展方法的类中调用该方法时,会生成此错误。在此处显示的示例中,为派生类 A 定义了扩展方法,但没有为基类 B 定义该方法。

更正此错误

  • 为必须要调用扩展方法的类型创建一个新的扩展方法,或将该调用移到现有方法所扩展的类型的对象中。

示例

下面的代码生成 CS1928 和 CS1929:

// cs1929.cs
using System.Linq;
    using System.Collections;

    static class Ext
    {
        public static void ExtMethod(this A a)
        {
        }
    }

    class A : B
    {
    }

    class B
    {
        static void Main()
        {
            B b = new B();
            b.ExtMethod(); // CS1929
        }
    }

请参见

参考

扩展方法(C# 编程指南)