枚举最佳实践

时间:2012-02-22 09:54:17

标签: .net enums

我正在定义几个表示事务的类,我需要定义一个TransactionType枚举。

我班级的原型是:

public class Transaction
{
    public enum Type { Income, Outcome }

    public DateTime Date { get; set;}
    public Type Type { get; set;}
    public decimal Amount { get; set;}
}

有些人会说应该在命名空间范围内声明TransactionType枚举,但对于那些我会说这个Type只与Transaction有关,所以IMO应该在类中声明。 如果我在类中声明它,则字段类型声明中存在编译器错误。 我应该把它命名为类型吗?不要猜,因为我需要将收入称为类型而不是类型。

请说出您对此主题的看法,谢谢。

4 个答案:

答案 0 :(得分:2)

Type是System.Reflection最重要的类之一。我会用另一个名字,因为它非常暧昧。

答案 1 :(得分:1)

调用枚举TransactionType并将其移到课堂外。该名称与Transaction.Type一样具有描述性,它解决了命名冲突问题。

答案 2 :(得分:0)

然后点击TransactionType。它仍然足够短,但它会使你的代码更具可读性。

答案 3 :(得分:0)

您可以尝试定义具有最小可见性的任何类型。在你的情况下,public enum Type { Income, Outcome }是公开的,所以它并不重要。如果它是私有的,那么你将它保持为嵌套类型。

最佳做法是将所有公共类型保存在单独的文件中。