私有类

.Net技术 码拜 9年前 (2016-03-07) 984次浏览
请先看这个网页http://referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs,22086bd66cee2e60
里面有很多私有类,问一下怎么用私有类?本人试过很多方法,都无法使用,也无法使用类成员,就拿这个类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);
    }
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明私有类
喜欢 (0)
[1034331897@qq.com]
分享 (0)