任何人都可以在VB中解释我需要使用Public Shared Sub,因此可以从其他表单访问它。
但是这个“公共”和“共享”意味着什么?
如果公开共享这是否意味着某些其他软件或“某些黑客应用”可以更轻松地访问此子及其值?
答案 0 :(得分:6)
在VB.NET中,Shared
相当于C#中的static
- 意味着该成员属于该类,而不是它的实例。您可能认为此成员在所有实例中都是“共享”,但这在技术上并不正确,即使VB.NET将通过实例调用解析Shared
成员。
public class1
public shared something as string
public somethingelse as string
end class
以下代码说明了VB.Net如何允许您访问这些内容:
...
class1.something = "something" 'belongs to the class, no instance needed
dim x as new class1() with {.somethingelse = "something else"}
Console.WriteLine(x.somethingelse) 'prints "something else"
Console.Writeline(class1.something) 'prints "something" <- this is the correct way to access it
Console.Writeline(x.something) 'prints "something" but this is not recommended!
...
Public
表示任何链接程序集都可以查看和使用此成员。
答案 1 :(得分:4)
Public
访问者关键字只是意味着方法,属性等可以从定义它的DLL或程序集外部可见和调用。
Shared
关键字表示方法等不是&#34;实例&#34;。也就是说,它只是类定义的一部分,而不是从该类定义创建的对象(&#34;实例&#34;)的一部分。这有两个主要影响: