using System;
namespace CS
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            StaClass.AAA();
        }
    }
    protected class StaClass            // 报错点
    {
        public StaClass(){}
        public static void AAA()
        {
            Console.WriteLine("String");
        }
    }
}
=================================================
protected 报错: 命名空间元素无法显式声明为 private、protected 或 protected internal
什么意思啊?类应该是可以用 protected 来修饰的呀。

解决方案 »

  1.   

    protected 去掉,命名空间直接包含下的类,好像只能是public
      

  2.   

    一个命名空间里,只能有一个带public的类,其他的用默认属性,所以用protected是不对的!
      

  3.   

    namespace CS
    {
    class Class1
    {
    [STAThread]
    static void Main(string[] args)
    {
    StaClass.AAA();
    }
    }
    }protected class StaClass
    {
    public StaClass(){}
    public static void AAA()
    {
    Console.WriteLine("String");
    }
    }
    =========================================
    这样还是报错如果加一个namespace:namespace CS
    {
    class Class1
    {
    [STAThread]
    static void Main(string[] args)
    {
    StaClass.AAA();
    }
    }
    }namespace CS2
    {
    protected class StaClass
    {
    public StaClass(){}
    public static void AAA()
    {
    Console.WriteLine("String");
    }
    }
    }
    =============================================
    还是报错
      

  4.   

    using System;
    namespace CS
    {
        protected class StaClass            // 报错点
        {
            public StaClass(){}
            public static void AAA()
            {
                Console.WriteLine("String");
            }
        }    class Class1
        {
            [STAThread]
            static void Main(string[] args)
            {
                StaClass.AAA();
            }
        }}
    或者:
    using CS;
    using CS2;namespace CS
    {
    class Class1
    {
    [STAThread]
    static void Main(string[] args)
    {
    StaClass.AAA();
    }
    }
    }namespace CS2
    {
    protected class StaClass
    {
    public StaClass(){}
    public static void AAA()
    {
    Console.WriteLine("String");
    }
    }
    }
      

  5.   

    To jianxia88888(影子):   还是错的
      

  6.   

    可以把修饰符protected改成internal如果这个类需要扩展可以做一个抽象类,如abstract
    方法也要改成抽象
      

  7.   

    难道 protected 修饰符不能修饰类吗?internal 和 protected 意义是不一样的,我想知道用 protected 如何解决?
      

  8.   

    using System;namespace CS
    {
        class Class1
        {
            protected class StaClass // 报错点
            {
                public StaClass() { }
                public static void AAA()
                {
                    Console.WriteLine("String");
                }
            }        [STAThread]
            static void Main(string[] args)
            {
                StaClass.AAA();
            }
        }
        
    }
      

  9.   

    To: king_4551793()    我想知道如何声明 protected class 而不会报错
      

  10.   

    using System;
    namespace CS
    {
    public class Class1
    {
    [STAThread]
    static void Main(string[] args)
    {
    StaClass.AAA();
    }
    }
     class StaClass           
      {
      public StaClass(){}
      public static void AAA()
      {
      Console.WriteLine("String");
      }
      }
    }ok~~
      

  11.   

    但是你没有 protected 关键字啊
      

  12.   

    using System;
    namespace CS
    {
        class Class1
        {
            [STAThread]
            static void Main(string[] args)
            {
                StaClass.AAA();
            }
            //声明protected需要放在某个类内部,否则关键字protected没有意义
            protected class StaClass
            {
                public StaClass(){}
                public static void AAA()
                {
                    Console.WriteLine("String");
                }
            }
        }
    }
      

  13.   

    命名空间内只能包含public或者internal的类定义,结构定义,接口定义等,如果没有指定,默认是internal。 protected表示存取限制于包含此定义的类或者继承类,命名空间是不可能继承的,所以protected用于命名空间内的定义是无意义的。而protected可以用于嵌套类,比如下面的代码是正确的。namespace N1
    {
        class C1
        {
            protected class C2
            {
            }
        }
    }
      

  14.   

    在同一个namesplace中,难道就不要声明对象吗?