码迷,mamicode.com
首页 > 编程语言 > 详细

Enum 权举最好放在类以外

时间:2015-04-06 10:13:02      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:c#   enum   



Enum 权举能够灵活存储不同的值,避免代码中充斥大量无法解释的数字。虽然无论放在类体内还是类体外,都能调用,但最好能够放在类体以外,这样调用更加灵活。

假设此处有两个 Enum ,分别放置在类体内外,在构造函数中我们传入两个参数调用 Enum 的值。

class TestEnum
    {
        enum theFirstEnum
        {
            one,
            two,
            three,
        }
        public theFirstEnum thefirstEnum { get; set; }
        public theSecondEnum thesecondEnum { get; set; }
        public TestEnum(theFirstEnum,one,theSecondEnum two)
        {
            this.thefirstEnum = one;
            this.thesecondEnum = two;
        }
        public string Value
        {
            get
            {
                return "1: " + thesecondEnum.ToString() + ";2: " + thesecondEnum.ToString();
            }
        }
        
    }
    enum theSecondEnum
    {
        ONE,
        TWO,
        THREE,
    }


这样的构造在实际调用中是不合法的,编译器会报错。

比如窗体的调用函数如下:

private void button1_Click(object sender, EventArgs e)
        {
            TestEnum testEnum = new TestEnum((theFirstEnum)random.Next(3),(theSecondEnum)random.Next(3));
            MessageBox.Show(testEnum.Value);
        }

技术分享技术分享


将构造函数关于第一个 Enum 部分去掉,又恢复了正常。

 public TestEnum(theSecondEnum two)
        {
         //   this.thefirstEnum = one;
            this.thesecondEnum = two;
        }


那么第一个 Enum 是不是完全不能调用了呢?其实不然,我们可以通过另外一种方法。

在类中添加返回 string 类型的方法:

public string returnEnum()
        {
            string reEnum = "";
            theFirstEnum theF = new theFirstEnum();
            reEnum += theF.ToString();
            return reEnum;
        }


并在窗体函数中添加:

private void button2_Click(object sender, EventArgs e)
        {
            TestEnum testEnum = new TestEnum((theSecondEnum)random.Next(3));
            MessageBox.Show(testEnum.returnEnum());
        }


结果如下:

技术分享


技术分享

综上所述,Enum 权举可以放在类内或类外,但是放在内类不符合一般情况下的调用规则,所以以后写程序尽量放在类外就好了。


Enum 权举最好放在类以外

标签:c#   enum   

原文地址:http://blog.csdn.net/roller44/article/details/44899541

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!