A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范国伟 中级黑马   /  2013-8-6 21:36  /  1362 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么我把枚举写在类外面就算是前边写 private 其他类一样能访问到
  1. namespace ConsoleApplication2
  2. {
  3.     private enum A
  4.     {
  5.         A, B, C
  6.     }

  7.     public class ZiMu
  8.     {
  9.         A a = A.B;
  10.     }
  11. }
复制代码
如果写在类里面  就算是public 也是访问不到
  1. namespace ConsoleApplication2
  2. {

  3.     public class class1
  4.     {
  5.         public enum A
  6.         {
  7.             A, B, C
  8.         }
  9.     }
  10.     public class ZiMu
  11.     {
  12.         A a = A.B; //报错是未能找到类型火命名空间
  13.     }
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

5 个回复

倒序浏览
枚举默认的应该是publish吧~
回复 使用道具 举报
默认应该是private只要在同一个命名空间的话就能访问得到,枚举类型一般是卸载类的外面命名空间的里面吧,类的成员好像不包含枚举
回复 使用道具 举报
我很疑惑,你是怎么写的,怎么我写不了
  1. namespace ConsoleApplication2
  2. {
  3.     private enum A    //这里这个private 写不出来呀。没有
  4.     {
  5.         A, B, C
  6.     }

  7.     public class ZiMu
  8.     {
  9.         A a = A.B;
  10.     }
  11. }
复制代码
回复 使用道具 举报
首先你这个代码就是有问题的,namespace中直接定义的元素是不能直接声明为private,在纠正下楼上一个兄弟的错误,默认的访问修饰符是internal而不是private,internal才是只要在同一个命名空间的话就能访问得到。
然后就是你那个在类中声明枚举的,与类种类的访问类似
public class ZiMu

   {
      
       ConsoleApplication2.class1.A a = ConsoleApplication2.class1.A.B; //要这样访问
   }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马