Re шаблон состояния, предложенный Splendor. Мне не нравится шаблон State, определенный в GOF, поскольку он не включает ничего общего с действиями по переходу состояний и не определяет, какие переходы состояний допустимы. ИМО, есть более подходящие подходы к управлению состоянием, чем этот шаблон (однако, определенно стоит прочитать о шаблонах, если у вас их нет).
Чтобы ответить на ваш вопрос, я бы просто использовал Enums. На этом этапе стоит рассмотреть пространства имен.
Вы можете помещать перечисления в свои классы.
public class Box
{
public enum BoxState { Open, Closed, Unused }
}
или непосредственно в пространство имен:
namespace MyOrg.Enums
{
public enum BoxState { Open, Closed, Unused }
}
Это действительно зависит от контекста перечисления; что-то очень специфичное, скорее всего, принадлежит классу, что-то более общее (и часто используемое в вашем коде) лучше внутри пространства имен.