【问题标题】:VB.NET not seeing some classesVB.NET 看不到某些类
【发布时间】:2011-09-16 22:26:31
【问题描述】:

我的一个课程似乎对我的项目的其余部分不可见。我想知道是否必须以某种方式初始化它,然后才能使用它的公共内容。

Class1 的函数和方法立即出现在 IntelliSense 中,但 Class2 被视为一般(未知)对象。

我在Class1Class2 中有一些Public Shared 函数。我可以调用函数使用

Class1.myPublicSharedFunction()

通常。但是,当我使用 Class2 中的任何函数尝试此操作时,我得到了错误:

Error   1   Option Strict On disallows late binding.

即使它们的类型当然是声明的。如果我将一个工作函数从Class1 复制并粘贴到Class2 并尝试调用它,它就会开始给出相同的错误。我在Class2 中声明的任何测试函数都无法识别其类型,因此被指控尝试进行后期绑定。

这两个类都是公共的,所有提到的函数都是Public Shared。我不明白是什么让课程的工作方式不同。就好像我需要在 VB 知道它的函数类型之前加载或编译 Class2,但这些东西在 VB 中应该是自动的。

这可能是什么原因?

当我开始输入 Class2. 时,IntelliSense 列表是一个函数,而 Class1 被识别为一个类。

编辑: 如果我将Class2 的确切内容复制到新类中,只需将Public Class ... 行更改为新名称,一切正常。我想可能是名字太长,所以我把这个类复制到AnotherClassWithAReallyLongName,但是这个也有用。
但是,如果我删除class2,然后重新添加并将其内容粘贴回去,它仍然无法正常工作。

【问题讨论】:

  • 你能和我们分享一下类声明以及你使用代码中的类的方式吗?
  • @Davide 类的内容很好,因为如果我将 class2 复制到另一个类,一切正常。 class2 的名称似乎有问题,将更新我的问题。
  • 您的代码中是否还有其他内容,无论是您编写的还是在名为 'class2' 的不同命名空间中?如果现在您已将其重命名并在 vb 中输入 class2. 您会得到任何智能感知吗?
  • @CResults Bingo,我发现类中神奇地添加了以下内容:“Private Function FloatingNumbersWhileAdd() As Object Throw New NotImplementedException End Function”。那解决了它。太浪费时间了,我不习惯这种自动出现的东西。谢谢!

标签: vb.net class shared public option-strict


【解决方案1】:

根据评论,您的代码中有其他名为“Class2”的内容隐藏了您的新类定义。删除它/重命名它,你的类就可以工作了。

【讨论】:

  • 好的,谢谢!你知道那个代码块会在什么情况下出现吗?因为我肯定没有把它放在那里。
  • 这听起来像是 VS 将添加到 sy 的代码“不要忘记实现这个功能” - 例如,当您覆盖具有标记为 MustOverride 的功能的 baee 类时。在特殊情况下,我不是 100% 确定!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2021-09-23
  • 1970-01-01
  • 2023-03-09
  • 2013-07-02
相关资源
最近更新 更多