请先看这个网页http://referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs,22086bd66cee2e60
里面有很多私有类,问一下怎么用私有类?本人试过很多方法,都无法使用,也无法使用类成员,就拿这个类HashtableEnumerator来说 它是私有的 有什么用 这个私有类HashtableEnumerator里还有一些public虚方法 这个public是不是多余的 还有既然有虚方法 那一定可以重写 怎么重写这些public的虚方法?
里面有很多私有类,问一下怎么用私有类?本人试过很多方法,都无法使用,也无法使用类成员,就拿这个类HashtableEnumerator来说 它是私有的 有什么用 这个私有类HashtableEnumerator里还有一些public虚方法 这个public是不是多余的 还有既然有虚方法 那一定可以重写 怎么重写这些public的虚方法?
解决方案
40
public class Class1 { public void test() { //Test t = new Test(); //var list = from o in t.T1List // orderby (from p in o.T2List select p.Id) // select o; //var list = t.T1List.OrderBy(o => o.T2List.Select(p => p.Id)).ToList(); Test3 te3 = new Test3(); } } private class Test3 { }
如上是可以编译通过的..可见..private实际应该是指在同一级别内可以公用.这里 类的上级是命名空间.所以私有类其实还是可以在同一命名空间内公用
20
全称应该叫 内部私有类,原因是私有类是不能放在类的外部的
一般用途就是为了方便处理内部的事情
最常见的就是各种枚举类
一般用途就是为了方便处理内部的事情
最常见的就是各种枚举类
public class Zoo : IEnumerable { //内部的私有类 struct ZooEnumerator : IEnumerator { public ZooEnumerator(Zoo zoo) { } //其他接口不实现了 } public IEnumerator GetEnumerator() { return new ZooEnumerator(this); } }