我是vb.net的初学者(自学成才)。我试图了解对象范围与类范围的区别。对象如何是私有的,您的班级是如何公开的?例如:
Public Class car 'create a class carro
private car_name As String
End Class
Public Class Form1 'create two objects of the class carro
Public obj_1 As New carro
Private Obj_2 As New carro
end class
'objcar_1和objcar_2在访问修饰符方面有什么区别?公共类如何生成私有对象?有关此问题的任何书籍推荐?提前致谢。 (来自巴西的问候)
答案 0 :(得分:0)
在类的上下文中,Public
意味着可以从程序集外部(.NET EXE或DLL)访问该类,而Friend
意味着只能从内部进行访问。这在EXE中几乎没有什么区别,但在DLL中很重要。引用您的DLL的任何人都可以访问所有Public
类,但不能访问Friend
类。这意味着您可以定义一个仅在您自己的项目中用作帮助器的类,并将其声明为Friend
,然后其他任何人都将无法引用您的DLL并访问该类。
Private
仅适用于在另一个类中声明的类。那是您应该很少做的事情,但是如果仅在涉及外部类的情况下使用内部类,这是有道理的。 Public
和Friend
的嵌套类含义与其他类完全相同,但是Private
表示嵌套类只能在一个外部类中使用。即使有关外部类被声明为Public
,嵌套类实际上也不会存在于相关外部类之外的任何代码。
字段和其他成员(属性,方法,事件)遵循与嵌套类相同的规则。如果它们是Public
,那么任何可以访问该类的代码都可以访问该成员。如果将它们声明为Friend
,那么即使声明了它们所属的类为Public
,也无法在声明它们的程序集外部对其进行访问。如果它们是Private
,那么即使它们是Public
,也只能在声明它们的类内部访问它们。
基本上,类的访问修饰符确定该类型的访问级别及其成员的最大访问级别。任何声明的访问级别比其声明的类型高的成员将有效地承担该类型的访问级别,而那些访问级别较低的成员将相应地采取行动。