您尝试从共享过程中引用类的非共享成员。 下面的示例演示了这种情况:
Class Sample
Public x as Integer
Public Shared Sub SetX()
x = 10
End Sub
End Class
在前面的示例中,赋值语句 x = 10
生成此错误消息。 这是因为共享过程尝试访问实例变量。
变量 x
是实例成员,因为它未声明为 共享。 类 Sample
的每个实例都包含自己的单独变量 x
。 当一个实例设置或更改 x
的值时,它不会影响任何其他实例中的 x
的值。
但是,该过程 SetX
Shared
在类 Sample
的所有实例中。 这意味着它不与类的任何一个实例关联,而是独立于单个实例进行操作。 由于它与特定实例没有连接, setX
因此无法访问实例变量。 它必须仅对 Shared
变量进行操作。 SetX
设置或更改共享变量的值时,该新值可供类的所有实例使用。
错误 ID: BC30369
更正此错误
确定是要在类的所有实例之间共享成员还是为每个实例保留单个成员。
如果希望在所有实例之间共享成员的单个副本,请将
Shared
关键字添加到成员声明。 在过程声明中保留Shared
关键字。如果希望每个实例都有自己的成员的单独副本,请不要为成员声明指定
Shared
。 从过程声明中删除Shared
关键字。