2017-11-20 11 views
2

は、私はクラスがあります。Collection <?>を継承するクラス内のコレクションにアクセスするには?

class TestCollection : Collection<Person> { 

    } 

を、メインから、私はそれに2つのPersonオブジェクトを追加します。 TestCollection tcを渡さずにTestMethod内の2つのオブジェクトにアクセスする方法はありますか?例えば

class TestCollection : Collection<Person> { 
     public void TestMethod(TestCollection tc) { 

     } 
    } 
+1

「これ」を試しましたか? – oerkelens

+1

'this'を使用してください。例: 'this [index]' –

+2

実際にlogictoにコレクション型を追加していない限り、一般的にはコレクション型を継承するべきではありません。とにかくあなたは何を求めているのですか? 'this.FirstOrDefault()'、 'foreach(var item in this)'など、外部からの場合と同じように、そのクラス内からアクセスします。 – CodeCaster

答えて

5

あなたが何かを継承すると、元の「内部」ではありません - それはは同じオブジェクトです。したがって、最終的には答えはthisです。 virtualメソッドを無効にする必要がある場合は、baseをオーバーライドしてください。 Collection<T>特にの場合

は、あなたがタイプを継承からアクセスすることができますprotected IList<T> Items {get;}性もあります - あなたはItems代わりのthisに話によって抽象化の範囲をバイパスすることができます。

関連する問題