编译器错误 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
}
}