我有以下基类:
namespace NamespaceA
{
public class ClassA
{
public ClassA();
public MyType Foo { get; }
}
}
以下类来自它:
using NamespaceA;
namespace NamespaceB
{
public sealed class ClassB : ClassA
{
...
private void MyFunc()
{
var foo = this.Foo;
}
}
}
一切都很精彩。
当我运行此功能时,它会在访问this.Foo
时崩溃。如果我在私有方法中放置一个断点,在此行之前并使用立即窗口检查Foo
,我得到以下内容:
me: Foo Immediate Window: The name 'Foo' does not exist in the current context me: this.Foo Immediate Window: 'NamespaceB.ClassB' does not contain a definition for
Foo
并且没有可以找到接受类型Foo
的第一个参数的扩展方法Namespace.ClassB
(您是否缺少using指令或程序集引用?)
任何想法可能会发生什么?完全公开,ClassA
是由另一个组实施的不同程序集。如果需要,我可以访问代码,但它不是现成的。
答案 0 :(得分:1)
this
引用ClassB
,Foo
在ClassA
中声明。试试这个:
public sealed class ClassB : ClassA
{
...
private void MyFunc()
{
var foo = Foo; // or: var foo = base.Foo;
}
}