6
public class TestClass
{
    protected internal int FieldA;
    internal protected int FieldB;    
}

保護された内部メンバーと内部保護されたメンバーの間に違いはありますか?

4

4 に答える 4

7

protected internalinternal protected メンバーに違いはありますか?

それらの間に違いはありません。

protected internalprotectedORを意味しますinternal

internal protectedinternalORを意味しますprotected

タイプまたはメンバーには、それが宣言されているアセンブリ内の任意のコードから、または別のアセンブリ内の派生クラス内からアクセスできます。別のアセンブリからのアクセスは、保護された内部要素が宣言されているクラスから派生したクラス宣言内で行われる必要があり、派生クラスタイプのインスタンスを介して行われる必要があります。

2つのうち、protected internal一般的に使用されます。アクセス修飾子に関するMSDNページinternal protectedへの参照はありません。

PhilHaackのブログ投稿もチェックしてくださいWhat Does Protected Internal Mean?

于 2013-02-17T23:56:31.647 に答える
2

いいえ、違いはありません。好きな順序で宣言できます。staticアクセス修飾子の前または後に宣言できるのと同じように。

唯一の本当の違いは、あなたとあなたのチームが決めることです。通常、混乱や仮定を避けるために1つのスタイルに固執するか、少なくともそれを読むときに一貫性を持たせる必要があります。

編集:しかし、私はそれを考えた今、私は頻繁に見たことを思い出しません"internal protected"。アクセス修飾子のMSDNページでは、それがとしてリストされている"protected internal"ので、「より標準的」と見なされる可能性があるため、これに固執する可能性があります。

于 2013-02-17T23:55:16.160 に答える
1

いいえ、ありません。

どちらのバリアントも、同じアセンブリおよび子孫クラスからアクセスできるメンバーを定義します。

于 2013-02-17T23:56:29.490 に答える
1

これは、同じアセンブリからの論理 "OR" => Internal:を使用したビット演算です。保護:派生クラスから。「保護されたAND内部」は意味がありません:-)

于 2013-02-18T00:51:52.820 に答える