需要澄清朋友和受保护朋友的范围

时间:2011-06-15 04:28:42

标签: .net scope friend protected

好的,我对FriendProtected Friend限定词感到头疼。我到处读的信息对我来说就像是法律语言。有些人比较简单的法律语言,但仍然是法律语言。

所以,我将尝试在伪VB中提供一个思想框架:

假设我有 AssemblyOne

Public Class classA_One
  Public memberPub
  Private memberPriv
  Protected memberProt
  Friend memberFri
  ProtectedFriend memberProFri
End Class

Public Class classAB_One
  Inherits classA_One
  ...
End Class

Public Class classC_One
  Dim objA_One as classA_One
End Class

其他人(大专)接受我生成的.dll,引用它,然后创建 AssemblyTwo

Public Class ClassAD_Two
  Inherits classA_One
  ...
End Class

Public Class classE_Two
  Dim objA_One as classA_One
End Class

我想知道的是classA_One成员的知名度。我确信:

  • memberPub随处可见
  • memberPriv只能在classA_One
  • 中查看 在memberProtclassA_OneclassAB_One 中可以看到
  • classAD_One

我不确定classA_One的其他两名成员的可见度。

有人可以帮助我吗?

TIA。

1 个答案:

答案 0 :(得分:2)

Friend:表示组件内的任何类型都可以访问它,没有人引用你的程序集就能看到它。

Protected Friend:表示该类型只能由派生成员访问,或者您的程序集类型未派生或不是程序集的一部分将无法访问它。

memberFri:可以访问classAB_one,也可以访问程序集类中的所有其他内容

memberProFri:可以访问classAB_one但不能访问classC_one