Перечень лучших практик - PullRequest
0 голосов
/ 22 февраля 2012

Я определяю пару классов для представления транзакций, и мне нужно определить перечисление 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 должно быть объявлено в области имен, но для тех, кто сказал бы, этот тип относится только к транзакции, поэтому IMO должен быть объявлен внутри класса. Если я объявляю это в классе, есть ошибка компилятора в объявлении типа поля. Должен ли я назвать это Типы? Не думаю, слишком, потому что мне нужно ссылаться на доход как тип, а не как типы.

Пожалуйста, скажите, что вы думаете об этой теме, спасибо.

Ответы [ 4 ]

2 голосов
/ 22 февраля 2012

Type является одним из наиболее важных классов System.Reflection. Я бы использовал другое имя, потому что оно очень амбициозное.

1 голос
/ 22 февраля 2012

Назовите enum TransactionType и переместите его за пределы класса. Это имя такое же описательное, как и Transaction.Type, и оно решает проблему конфликта имен.

0 голосов
/ 22 февраля 2012

Вы пытаетесь определить любой тип с наименьшей возможной видимостью.В вашем случае public enum Type { Income, Outcome } является публичным, поэтому это не имеет значения.Если бы он был закрытым, то вы бы хранили его как вложенный тип.

Рекомендуется хранить все открытые типы в отдельных файлах.

0 голосов
/ 22 февраля 2012

Сделайте это TransactionType тогда.Он все еще будет достаточно коротким, но сделает ваш код более читабельным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...