public enum week : int
        {
            monday = 1,
            tuesday,
            wednesday,
            thursday,
            friday,
            saturday,
            sunday
        }
        static void Main(string[] args)
        {
            Console.WriteLine(typeof(week));
        }不明白为什么以上程序的结果输出的是:命名空间.Program+week求高手解释!如果把            Console.WriteLine(typeof(week));
改为            Console.WriteLine(typeof(DayOfWeek));输出的则是:System.DayOfWeek还是不明白为什么会输出的是DayOfWeek这不都是枚举类型么?顺便给自己找一个师傅,或者愿意一起研究问题的朋友!QQ:362710226

解决方案 »

  1.   

    你的week枚举写在Program类里的, 输出命名空间.Program+week 很正常吧 这不都是枚举类型么?
    照你这么说 所有的 typeof(类型) 都会是 object了  或者是 class?
      

  2.   

    Console.WriteLine(typeof(week));
    你这段代码的意思是输出week的类型,你定义的week的命名空间是你自己定义的。DayOfWeek的命名空间是System 所以输出的结果不一样。。
      

  3.   

    命名空间.Program+week 
    可能你的疑问是为什么中间有个 Program
    那是因为你把你的枚举定义在了名字为{Program名}class里。。
    这个可以拿到类的外面的。这样就没有Program名了。。直接命名空间.week 
      

  4.   

    我不明白typeof()返回的到底是一个什么?如果按照你说的那样,输出输出命名空间.Program+week,和输出:System.DayOfWeek我能理解的话,我实在是不懂,比如typeof(int),typeof(string)等这些括号内的都是一个类型,而typeof(week)和typeof(DayOfWeek)却是枚举名,他们的实际类型不应该是int么?