Public Class Class1
Private names As List(Of String)
Private _class2 As New Class2
Public Sub AddName(ByVal name As String)
names.Add(name)
_class2.Add()
End Sub
Public ReadOnly Property AddAge(ByVal name As String) As Class2
Get
_class2.index = names.IndexOf(name)
Return _class2
End Get
End Property
Public Sub Clear()
names.Clear()
_class2.Clear()
End Sub
Public Class Class2
Private _age As List(Of Integer)
Protected Friend index As Integer
Public Property Age() As Integer
Get
Return _age(index)
End Get
Set(ByVal value As Integer)
_age(index) = value
End Set
End Property
Public Sub Add()
_age.Add(0)
End Sub
Public Sub Clear()
_age.Clear()
End Sub
End Class
End Class
我怎样才能在class2上隐藏,Sub Clear和Sub Add,所以它们只会在class1上可见,比如;
Public Sub Clear()
names.Clear()
_class2.Clear() '<<<<<<<
End Sub
我希望它们在Sub Main()上不可见,就像它们在下面一样。
Sub Main()
Dim person As New Class1
person.AddAge("kid").Clear() '<<<<<<
person.AddAge("kid").Add() '<<<<<<
End Sub
如果我把Protected,我的class1无法访问它。如果我把Protected Friend,Sub Main()仍然可以访问它们。谢谢你的帮助和时间。
答案 0 :(得分:1)
使用-Hans Passant-评论。
“.NET中的信任遵循程序集边界。如果你在一个程序集中得到两个类,那么有两个程序员知道如果出现问题就能找到对方。获得你想要的东西的唯一方法是把这些类放到在一个单独的类库项目中。然后让你使用朋友。而且任何人都写道,Main方法不一定要友好。“