BC42025:通过实例访问共享成员、常量成员、枚举成员或嵌套类型;将不计算限定表达式
类或结构的实例变量用于访问该类或结构中定义的 Shared
变量、属性、过程或事件。 如果实例变量用于访问类或结构的隐式共享成员(如常量或枚举)或嵌套类或结构,则也可能发生此警告。
共享成员的目的是仅创建该成员的单一副本,并且使该单个副本可用于声明该成员的任何类或结构实例。 通过成员类或结构的名称(而不是通过保存该类或结构的单个实例的变量)访问成员 Shared
与此目的一致。
通过实例变量访问 Shared
成员可能会模糊显示成员为 Shared
这一事实,使代码更难理解。 此外,如果此类访问是执行其他操作(如返回共享成员实例的 Function
过程)的表达式的一部分,则 Visual Basic 将绕过该表达式及其将执行的其他任何操作。
有关详细信息及示例,请参阅共享。
默认情况下,此消息是一个警告。 有关隐藏警告或将警告视为错误的详细信息,请参阅 Configuring Warnings in Visual Basic。
错误 ID: BC42025
示例
下面的示例生成 bc42025:
Public Class TestClass
Public Shared Sub SayHello()
Console.WriteLine("Hello")
End Sub
End Class
Module Program
Public Sub Main()
Dim tc As New TestClass()
tc.SayHello() ' BC42025.
End Sub
End Module
解决此警告
使用定义访问 Shared
成员的成员的类或结构的名称,如以下示例所示:
Public Class TestClass
Public Shared Sub SayHello()
Console.WriteLine("Hello")
End Sub
End Class
Module Program
Public Sub Main()
TestClass.SayHello()
End Sub
End Module
注意
当两个编程元素具有相同的名称时,对范围的影响发出警报。 在上一示例中,如果使用 Dim testClass As TestClass = Nothing
声明实例,则编译器将对 testClass.SayHello()
的调用视为通过类名臣访问方法,并且不会发生警告。
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈