Я предположил, что все непубличные (т. Е. Частные, защищенные, внутренние и внутренние защищенные) члены объектов C# переходят под «негосударственными членами», когда я смотрю на объекты в окне просмотра Visual Studio. Но потом я заметил anamoly с этим кодом:Что входит в узел «Непубличные члены» в окне «Визуальные окна»?
class HashDerived : System.Security.Cryptography.HashAlgorithm { ... }
HashAlgorithm hash1 = new HashDerived();
HashAlgorithm hash2 = new System.Security.Cryptography.SHA1Cng();
hash1
's "непубличных Члены" выглядит следующим образом:
, тогда как hash2
' s "непубличных Члены" выглядит следующим образом:
Так что похоже на hash1, толькоПоле(m_bDisposed) появляется под заголовком «Non-Public members», где для hash2, даже protected
и protected internal
таких членов, как «HashSizeValue» и «HashValue».
Почему это происходит? Каковы правила этого поведения?
SHA1Cng заявлен ** запечатан **. Таким образом, его защищенные члены больше не доступны никакому производному классу. –