通过


BC30369:无法在没有类的显式实例的情况下从共享方法或共享成员初始值设定项内引用类的实例成员

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

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

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

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

但是,该过程 SetX 属于 SharedSample的所有实例之一。 这意味着它与类的任何一个实例无关,而是独立于单个实例运行。 由于它与特定实例没有连接, setX 因此无法访问实例变量。 它只能对 Shared 变量进行作。 当设置或更改共享变量的值时 SetX ,该新值可用于该类的所有实例。

错误 ID: BC30369

更正此错误

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

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

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

另请参阅