C# 基于“智能感知”;使用;不是继承

C# 基于“智能感知”;使用;不是继承,c#,visual-studio,C#,Visual Studio,在下面的屏幕截图中,编译器和IntelliSense显示,除非我使用语句取消对的注释,程序实例不是满足导入的有效参数。据我所知,它与基于基类/接口/隐式转换的签名不匹配,而且两者都有相关的引用,那么它怎么知道呢?使用检查调用了什么,它是如何工作的 如果没有使用,编译器只能在System.ComponentModel.Composition.Hosting命名空间中查找,该命名空间只接受一个componesablepart参数 通过使用,它还可以找到哪个对象采用了对象参数。视情况而定。satis

在下面的屏幕截图中,编译器和IntelliSense显示,除非我使用语句取消对
的注释,
程序
实例不是
满足导入
的有效参数。据我所知,它与基于基类/接口/隐式转换的签名不匹配,而且两者都有相关的引用,那么它怎么知道呢?使用
检查调用了什么
,它是如何工作的


如果没有
使用
,编译器只能在
System.ComponentModel.Composition.Hosting
命名空间中查找,该命名空间只接受一个
componesablepart
参数


通过使用,它还可以找到哪个对象采用了
对象
参数。

视情况而定。
satisfyimporton(Program)
是否作为扩展方法在
System.ComponentModel.Composition
命名空间中实现?@FrédéricHamidi Ah,忘记了扩展,没有想到“官方”Microsoft库会使用它们。是的,这是一种扩展方法,谢谢!你不应该感到惊讶,LINQ也是一个“官方”MS库,到处使用扩展方法:)嗯,有时候感觉扩展是专门为LINQ及其衍生产品设计的;绕过密封类。我惊讶地发现一个正常方法[理论上]可以做到的方法。