Где лучше всего найти типы перечислений?

В search => файле есть опция, а ярлык - Ctrl + H. Идите, чтобы продолжить ссылку. Это отлично работает с Eclipse Neon

Есть ли способ найти / заменить весь проект в Eclipse?

39
задан aceinthehole 17 October 2008 в 20:00
поделиться

9 ответов

Почему перечисления обработки по-другому к другим типам? Сохраните их в том же пространстве имен, поскольку они, вероятно, будут использоваться - и предположение, что они собираются быть используемыми другими классами, делают их типами верхнего уровня в их собственных файлах.

единственный тип типа, который я делаю обычно глыба вместе, является делегатами - у меня иногда есть файл Delegates.cs с набором делегатов в. Меньше с.NET 3.5 и Func/Action, заметьте.

43
ответ дан Jon Skeet 17 October 2008 в 20:00
поделиться
  • 1
    Я don' t получают запись в eventlog, таким образом, я don' t думают, что это - он. Это было хорошее предложение, все же. Спасибо! – Rasmus Faber 23 December 2008 в 16:06

Я обычно пытаюсь поместить все свои различные типы (классы, интерфейсы и перечисления) в их собственных файлах, независимо от того, насколько маленький они. Это просто делает намного легче найти и управлять файлом, они находятся в, особенно если Вы, оказывается, не находитесь в Visual Studio и не имеете, "переходят к определению" доступная функция. Я нашел, что почти каждый раз поместил "простой" тип как этот в другом классе, я заканчиваю или прибавляющий к нему позже или снова использующий его способом, что больше не имеет смысл для него не иметь свой собственный файл.

, До которого пространства имен, это действительно зависит от дизайна того, что Вы разрабатываете. В целом я пытаюсь подражать соглашению платформы.NET.

4
ответ дан Daniel Schaffer 17 October 2008 в 20:00
поделиться

Кроме того, пространства имен для разделения вещей, которые принадлежат вместе логически. Не все классы принадлежат того же пространства имен просто, потому что они - классы. Аналогично, не все перечисления принадлежат того же пространства имен просто, потому что они - перечисления. Поместите их с кодом, которого они логически принадлежат.

8
ответ дан Nick 17 October 2008 в 20:00
поделиться
  • 1
    Только начальная версия (или возможно первая бета) 1,0 платформ использовала потоки STA. Следует иметь в виду также, что этот контекст поточной обработки только должен иметь дело со взаимодействующим с COM и моделью COM. Если they' ре с помощью COM-объекта это doesn' t имеют значение здесь. – Peter Oehlert 23 December 2008 в 17:08

Я пытаюсь поместить все связанное с классом в классе. Это включает не только перечисления, но также и константы. Я не хочу идти, ища в другом месте файл или класс, содержащий перечисления. В крупном приложении с большим количеством классов и папок, не всегда было бы очевидно, куда поместить перечислимый файл, таким образом, будет легко найти.

, Если перечисление, если используется в нескольких тесно связанных классах, Вы могли бы создать базовый класс так, чтобы общие типы как перечисления были совместно использованы там.

, Конечно, если перечисление действительно универсально и широко используемое, можно хотеть создать отдельный класс для них, наряду с другими универсальными утилитами.

4
ответ дан DOK 17 October 2008 в 20:00
поделиться
  • 1
    Праву, но по умолчанию.Net потоки не определили квартиру и определит ту при использовании объекта. Далее, квартира потока все еще только важна если you' ре, или используемое в качестве объекта com (CCW) или использующее объект com (RCW). – Peter Oehlert 23 December 2008 в 20:39

Если мое перечисление имеет шанс того, чтобы когда-нибудь быть используемым вне класса, я намереваюсь использовать его, я создаю отдельный исходный файл для перечисления. Иначе я помещу его в классе, я намереваюсь использовать его.

2
ответ дан John Kraft 17 October 2008 в 20:00
поделиться
  • 1
    Как Вы использовали его? Исключение Ошибка, выполняющая дочерний запрос , исчезла, но я получаю пустую страницу. – Serge S. 20 August 2010 в 13:07

Какая среда?

В.NET я обычно создаю пустой файл класса, переименовываю ее к MyEnum или безотносительно указать, что она содержит мое перечисление, и просто объявите его там.

2
ответ дан Nick 17 October 2008 в 20:00
поделиться

Обычно я нахожу, что перечисление центрируется вокруг единого класса - как тип MyClassOptions вещи.

В этом случае, я помещаю перечисление в тот же файл как MyClass, но в пространстве имен, но вне класса.

namespace mynamespace
{
  public partial class MyClass
  {
  }
  enum MyClassOptions
  {
  }
}
2
ответ дан Chris Cudmore 17 October 2008 в 20:00
поделиться

Я склонен определять их, где их использование очевидно в очевидном. Если у меня есть определение типа для структуры, которая использует его по некоторым причинам...

typedef enum {
  HI,
  GOODBYE
} msg_type;

typdef struct {
 msg_type type;
 union {
   int hivar;
   float goodbyevar;
  }
} msg;
1
ответ дан Nicholas Mancuso 17 October 2008 в 20:00
поделиться

Я думаю, что вы помещаете Enums и Constants в класс, который их потребляет или который использует их для контроля кодовых решений больше всего, и вы используете завершение кода для их поиска. Таким образом, вам не нужно помнить, где они находятся, они связаны с классом. Так, например, если у меня есть класс ColoredBox, мне не нужно думать о том, где они находятся. Они будут частью ColoredBox. ColoredBox.Colors.Red, ColoredBox.Colors.Blue и т.д. I Я думаю о перечислении и константе как о свойстве или описании этого класса. Если он используется несколькими классами, и ни один класс не доминирует, то уместно иметь класс перечислений или класс констант. Это соответствует правилам инкапсуляции. Изоляция свойств от несхожих классов. Что если вы решите изменить RGB красного цвета в объектах Cirle, но но не хотите менять красный цвет для объектов ColoredBox? Инкапсуляция их свойств позволяет это сделать.

4
ответ дан 27 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: