Shared、Public等的差异
Shared
Public
Protected
Friend
Private
...
适用范围,请举简单例子说明
[解决办法]
public,private,protect是变量作用范围
Shared 变量作用类似application全局变量.
[解决办法]
Shared类似于static
[解决办法]
Shared 声明静态全局变量,多线程可作为安全变量
Public 全局变量,这变量在哪声明都能用到
Protected 这个好像是声明属性用的吧?前面加上public就全局可见,加上private模块内部可见了
Friend 不太知道这东西,用在属性前面的。。。没用过
Private 局部变量,只能本模块内可见,功能基本同dim。。。但没人声明方法用dim吧。。。区别就这点。
[解决办法]
Class Employee
Public name As String
Private salary As Double
End Class
Module MDLTest
Sub Main()
Dim c As New Employee
c.name = "John "
' Error:
' c.salary = 100403.33
End Sub
End Module
---------------------------
Class Client
Public prefix As String
Public name As String
Public Shared printPrefix As Boolean = True
Sub PrintName()
If printPrefix Then Console.Write(prefix)
Console.WriteLine(name)
End Sub
End Class
Module MDLTest
Sub Main()
Dim x As New Client
x.prefix = "Mr. "
x.name = "John Smith "
Client.printPrefix = False
x.PrintName()
End Sub
End Module
[解决办法]
public,protected,friend,private 是定义类中成员的访问权限的。
public 类中其他成员,子类,实例 ,友类 都可以访问
protected 类中其他成员,子类 可以访问
friend 类中其他成员,友类 可以访问
private 类中其他成员 可以访问
Shared 声明成员为共享,相当于 c++,c#,java 中的 static(静态) ,不能在实例中访问。只能通过类型来访问。而且其值是共享的。可以修改的。这一点是和 const 截然不同的。