所以我有一堂课:

    class TestCollection : Collection<Person> {

    }


从主要我添加两个Person对象。我不知道有什么方法可以在不通过TestCollection tc的情况下访问TestMethod中的两个对象?例如

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

        }
    }

最佳答案

当您继承某些内容时,原始对象不是“内部”-它是同一对象。因此,最终的答案是:this。如果需要绕过已覆盖的virtual方法,请:base

特别是在Collection<T>的情况下,还有一个protected IList<T> Items {get;}属性,您可以从继承类型访问该属性-因此您可以通过与Items而不是this进行交谈来绕开一系列抽象。

07-24 21:32