我的一个课程似乎对我项目的其余部分是不可见的。我想知道在我使用公共资源之前,我是否必须以某种方式初始化它。
Class1
的功能和方法立即出现在IntelliSense中,但Class2
被视为一般(未知)对象。
我在Public Shared
和Class1
中有一些Class2
个功能。我可以使用
Class1.myPublicSharedFunction()
正常。但是,当我使用Class2
中的任何函数尝试此操作时,我收到错误:
Error 1 Option Strict On disallows late binding.
即使他们的类型当然是宣布的。如果我将工作函数从Class1
复制并粘贴到Class2
并尝试调用它,则会开始给出相同的错误。我在Class2
中声明的任何测试函数都没有识别出它的类型,因此被指责尝试进行后期绑定。
这两个类都是公开的,所有提到的函数都是Public Shared
。我不明白是什么让这些类的工作方式不同。就好像我需要在VB知道它的函数类型之前加载或编译Class2
,但这些东西在VB中是自动的。
这可能是什么原因?
当我开始输入Class2.
时,智能感知列表就是一个功能,而Class1
被识别为一个类。
编辑:
如果我将Class2
的确切内容复制到新类中,只将行Public Class ...
更改为新名称,一切正常。我认为可能是名字太长了,所以我把课程复制到AnotherClassWithAReallyLongName
,但这个也有效。
但是,如果我删除class2
,然后重新添加并粘贴其内容,它仍然无效。
答案 0 :(得分:1)
根据评论,你的代码中有一些名为`Class2'的东西隐藏了你的新类定义。删除它/重命名它,你的课程就可以了。