更新:2007 年 11 月
尝试从共享过程中引用类的非共享成员。下面的示例演示了这样的情形。
Class sample
Public x as Integer
Public Shared Sub setX()
x = 10
End Sub
End Class
在前面的示例中,赋值语句 x = 10 生成此错误信息。这是因为共享过程试图访问实例变量。
变量 x 是一个实例成员,因为它没有被声明为 Shared (Visual Basic)。类 sample 的每个实例都包含其自己单独的变量 x。当一个实例设置或更改 x 的值时,它不会影响任何其他实例中的 x 的值。
但是,过程 setX 在类 sample 的所有实例中是 Shared。这意味着,它与类的任一实例都不关联,而是独立于各个实例运行。由于它与特定实例没有联系,因此 setX 无法访问实例变量。它必须只对 Shared 变量进行运算。当 setX 设置或更改共享变量的值时,那个新值可用于类的所有实例。
**错误 ID:**BC30369
更正此错误
确定是要在类的所有实例中共享成员,还是使成员对于每个实例都保持独立。
如果要在所有实例中共享成员的一个副本,请将 Shared 关键字添加到成员声明中。在过程声明中保留 Shared 关键字。
如果希望每个实例具有其自己单独的成员副本,请不要为成员声明指定 Shared。将 Shared 关键字从该过程声明中移除。