可以详细解释一下 C#里 public,private,protect,internal这几个的区别吗? 另外还有 类如果是默认情况下是什么限定符,那类里的函数呢??比如class A
{
  void F();
}

解决方案 »

  1.   

    (1)     publicpublic关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别。对访问公共成员没有限制。(2)     privateprivate关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的。(3)     internalinternal关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的。(4)     protectedprotected关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。    声明的可访问性 
     含义 
     
    public
     访问不受限制。
     
    protected
     访问仅限于包含类或从包含类派生的类型。
     
    internal
     访问仅限于当前程序集。
     
    protected internal 
     访问仅限于派生类或当前程序集。
     
    private
     访问仅限于包含类型。
     
      

  2.   

    class A
    {
    void F();
    }修饰符都是private
      

  3.   

    楼上,方法是private, 类是internal
      

  4.   


    我做了个test,一个类有无修饰符,一个是有修饰符
    然后查看IL,有如下内容:
     无修饰符:
     .class private auto ansi beforefieldinit myspace.myclass
           extends [mscorlib]System.Object
    {
    } // end of class myspace.myclass  有修饰符(public):
    .class public auto ansi beforefieldinit myspace.myclass
           extends [mscorlib]System.Object
    {
    } // end of class myspace.myclass  没有修饰符的,是private;是不是可以说明默认是private?!
      

  5.   

    我记错了,class 默认是internal(刚才问同学了)
    sorry!