您是否缺少using指令或程序集引用?

时间:2011-08-15 07:00:32

标签: c#

我无法在visual c#中找出这个错误。

Error   1
'Engine.VerticalMenu' does not contain a definition for '_buttons' and no extension method '_buttons' accepting a first argument of type 'Engine.VerticalMenu' could be found
(are you missing a using directive or an assembly reference?)   

对于这一行:

System.Diagnostics.Debug.Assert(false, _menu._buttons.Count.ToString());

我有两个项目,第一个是具有相同名称空间引擎和类型类库的引擎,另一个是使用此引擎库的Windows窗体应用程序。我有使用指令和项目的引用,可能是什么导致这个?谢谢。

5 个答案:

答案 0 :(得分:1)

看起来_buttons是私有类成员,因此您无法从外部访问它。

要么公开,要么更好地将公共吸气剂添加到_menu类:

public TypeOfButtonCollectionHere Buttons { get { return _buttons; } }

将调用代码更改为:

 System.Diagnostics.Debug.Assert(false, _menu.Buttons.Count.ToString());

答案 1 :(得分:1)

_buttons可能是私有的吗?然后它在菜单类之外是不可见的,您无法访问它。包裹它到公共财产,你可以访问它。

答案 2 :(得分:0)

这听起来像命名冲突(命名空间或类)。您是否尝试过使用该课程的完全限定名称?没有更多信息,这只是在黑暗中拍摄。

答案 3 :(得分:0)

不,它不是公共事物,vs还有其他错误消息。看起来_menu根本没有成员_buttons。所以这意味着类或接口_menu没有_buttons。

答案 4 :(得分:0)

检查项目引擎引用的程序集 all 是否也由Win表单引用。

如果是这种情况,通常会给出另一个错误,但并非总是如此。 如果他们都被引用。尝试重建Engine项目。如果引用的项目中存在编译错误,VS可能会抛出上述错误。这些错误应该显示在错误日志中,因此您还可以检查错误日志以查看是否存在其他错误,其中一些错误在引擎中。 (即使不是这种情况,我个人仍然会单独构建Engine,以完全排除它)