BC30369:没有类的显式实例,就无法从共享方法或共享成员初始值设定项中引用该类的实例成员

您尝试从共享过程中引用类的非共享成员。 下面的示例演示了这种情况:

Class Sample
    Public x as Integer
    Public Shared Sub SetX()
        x = 10
    End Sub
End Class

在前面的示例中,赋值语句 x = 10 生成此错误消息。 这是因为共享过程尝试访问实例变量。

变量 x 是实例成员,因为它未声明为 共享。 类 Sample 的每个实例都包含自己的单独变量 x。 当一个实例设置或更改 x 的值时,它不会影响任何其他实例中的 x 的值。

但是,该过程 SetXShared 在类 Sample 的所有实例中。 这意味着它不与类的任何一个实例关联,而是独立于单个实例进行操作。 由于它与特定实例没有连接, setX 因此无法访问实例变量。 它必须仅对 Shared 变量进行操作。 SetX 设置或更改共享变量的值时,该新值可供类的所有实例使用。

错误 ID: BC30369

更正此错误

  1. 确定是要在类的所有实例之间共享成员还是为每个实例保留单个成员。

  2. 如果希望在所有实例之间共享成员的单个副本,请将 Shared 关键字添加到成员声明。 在过程声明中保留 Shared 关键字。

  3. 如果希望每个实例都有自己的成员的单独副本,请不要为成员声明指定 Shared。 从过程声明中删除 Shared 关键字。

请参阅