я сохранил бы их в их собственном файле для легкого доступа и хорошей организации так или иначе.
я обычно не помещал бы их в класс, если они так или иначе не "принадлежат" там. Как Вы имеют Автомобильный класс с перечислением для типов автомобиля, и Дорожный класс и класс Моста, который может установить пределы для типов автомобиля. Car.CarType
, кажется, логическая организация по этому...
Обычно я просто бросаю их в пространство имен. Это - то, что Microsoft делала записи платформа.NET, таким образом, это - то, что я делаю также для непротиворечивости, которую Вы понимаете :)
Поместите его в его собственный файл и просто объявите его:
общедоступное перечисление Foo {a, b, c, d}
Рассматривают Ваше пространство имен, конечно.
Мой совет не состоит в том, чтобы использовать Перечисления вообще. Используйте одиночные элементы вместо этого.
Как
public class A : ISomeInterface
{
public static readonly A Instance = new A();
private A()
{
}
}
public class B : ISomeInterface
{
public static readonly B Instance = new A();
private B()
{
}
}
В большинстве случаев, который работает лучше и лучше для расширения позже.
С наилучшими пожеланиями
Matze
Можно поместить перечисление, новый codefile с .cs расширением, чтобы intellisense работал, удостоверяются его часть проекта/решения, и конечно это должно быть общедоступное перечисление так, чтобы у Вас был объем решения для него. Если intellisense является проблемой, удостоверьтесь, что Вы создаете свое решение однажды, у меня была эта проблема однажды и просто восстанавливание, решенное это. Пространство имен является хорошим вариантом, если Вы хотите организовать свой код правильно, и Вы кодируете крупный проект. Платформа.NET была большой. таким образом, это имеет перечисления под пространствами имен только для лучшего понимания и организации кода.
Вот пример наличия двух перечислений в различных пространствах имен:
using TotallyDifferentNameSpace.Enums;
namespace EnumEx
{
class Program
{
static void Main(string[] args)
{
CarType car = CarType.Audi;
PetrolType pType = PetrolType.Diesel;
}
}
public enum CarType
{
Volkswagen,
Audi,
Toyota,
Ford,
Porsche,
Lada
}
}
namespace TotallyDifferentNameSpace.Enums
{
public enum PetrolType
{
Gasoline,
Diesel
}
}
Справка XML-комментариев, особенно если другие будут использовать его
/// <summary>
/// Defines the types of cars we support
/// </summary>
public enum CarType
{
/// <summary>
/// VW - the peoples car
/// </summary>
Volkswagen,
Ваше перечислимое имя, должна быть множественным числом (как проинструктировано FxCop)
public enum CarTypes
, Добавляют числовые значения и используют поразрядно нумерацию, даже если Вы не планируете использовать поразрядно (это - боль для изменения нумерации позже).
Volkswagen = 1,
/// <summary>
/// They own lambo... can't be all that bad
/// </summary>
Audi = 2,
/// <summary>
/// Good, cheap, reliable
/// </summary>
Toyota = 4,