#region директива действительно полезна в.NET?

Вам просто нужно выбрать count(air.ac_id).

Также замените clnt.usr_sid=? на clnt.clnt_id=?, если вы собираетесь ожидать такой результат, как clnt_id[1]=3.

select count(air.ac_id) as nAC
from clients_db clnt 
left join aircon_client_db air on air.clnt_sid=clnt.clnt_sid
where clnt.clnt_id=?
group by clnt.clnt_sid
order by clnt.clnt_name asc

Вы пропустили clnt_name в качестве колонки в вашем вопросе?

18
задан Jeff Yates 4 October 2008 в 00:44
поделиться

16 ответов

подобный вопрос уже задали.

, но...

я говорил бы не больше . Это было первоначально предназначено для сокрытия сгенерированный код от WinForms в ранних версиях.NET. С частичными классами потребность, кажется, уходит. По моему скромному мнению, это злоупотребило путь теперь как организационную конструкцию и имеет значение компилятора что. Это - все для IDE.

21
ответ дан 30 November 2019 в 05:44
поделиться

Продолжение, что было ранее сказано Russell Myers, если Вы изучаете, как осуществить рефакторинг Ваш код правильно (навык опытные разработчики должны учиться), действительно нет слишком большого количества потребности в регионах.

Несколько недель назад я думал, что регионы были большими, потому что они позволили мне скрывать свой толстый код, но после осуществления моих навыков кода я смог сделать его стройнее, и теперь я вписался в размер 7 классов (кто-то должен ТАК сделать это измерением для рефакторинга в будущем! :P)

2
ответ дан 30 November 2019 в 05:44
поделиться

Наши Бизнес-объекты у всех есть регионы - и мы любим их.

Мы имеем;

  • Бизнес-Свойства и Методы
  • Общие Методы
  • Конструкторы
  • Доступ к данным Авторизации
  • События

у Нас есть немногие другие в зависимости от типа Бизнес-объекта, мы имеем дело с (Подписчик и т.д.)

Для многих регионов классов просто мешают - но для наших стандартных бизнес-объектов они сохраняют нас тонна времени. Эти Бизнес-объекты являются кодом gen'd, таким образом, они очень последовательны. Может добраться туда, где я хочу быть путем быстрее, чем помеха, если они не, и непротиворечивость помогает найти материал друг друга.

4
ответ дан 30 November 2019 в 05:44
поделиться

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

#region Properties

#region Update Section

#region Accessors

, Конечно, необходимо избежать примера Jeff

#Sweep under carpet

, Что я нахожу нечетными о них, как Jeff, на которого указывают, то, что они - команда препроцессора компилятора в ui целях. Я уверен, что команда VS, возможно, сделала что-то столь же полезное в другом отношении.

6
ответ дан 30 November 2019 в 05:44
поделиться

http://www.rauchy.net/regionerate/ - Автоматически regionised Ваш код ;)

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

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

13
ответ дан 30 November 2019 в 05:44
поделиться

Я часто использую их вместо комментариев для упорядочивания групп функциональности в теле класса, например, "Открытого интерфейса конфигурации", "Открытый интерфейс состояния", "внутренняя обработка" и "внутреннее управление рабочим потоком".

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

, К сожалению, регионы повреждаются для C++, и MS не думает, что должен быть зафиксирован.

2
ответ дан 30 November 2019 в 05:44
поделиться

Часто времена, и partials и #regions используются в качестве опоры для плохого дизайна (например, класс является слишком большим или пытается сделать слишком много вещей).

лучший использование я имел для #regions, до сих пор группировка функциональности, которая замечена во многих различных классах. Например, оцените объекты, которые имеют методы считывания, методы set, конструкторов и поля поддержки. Я мог бы очень хорошо сгруппировать те идеи в регионы. Это - дело вкуса, однако, относительно того, делает ли это инструмент для очистки кода или тяжелее читать.

17
ответ дан 30 November 2019 в 05:44
поделиться

Мой рабочий день запускает с вводных файлов в редакторе и нажатии "Expand All" для сокрытия всех регионов. После этого я могу начать работать.

-1
ответ дан 30 November 2019 в 05:44
поделиться

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

0
ответ дан 30 November 2019 в 05:44
поделиться

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

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

1
ответ дан 30 November 2019 в 05:44
поделиться

Хорошие ответы, я соглашаюсь с ними, что говорят, что это иногда отражает плохо кодирование и дизайн, но #region на самом деле полезен при создании документации (стиль MSDN) с SandCastle. Позволяет говорят, что у Вас есть общедоступный API и существует некоторый базовый класс, для которого Вы хотите дать пример использования. Затем Вы правильно зарегистрировали бы свои открытые методы и добавили бы регион в качестве примера, где Вы могли скопировать и вставить некоторый код. Проблема с этим состоит в том, что, когда/если Ваш базовый класс изменяется, Вы, как предполагается, изменяете пример в конечном счете. Лучшее решение состоит в том, чтобы включать проект примера кода в Ваше решение и создать все это вместе, поэтому каждый раз Вы создаете свое решение, если пример кода не будет актуален, то это не скомпилирует. Таким образом, что делает, которые имеют отношение к регионам, Вы будете спрашивать Ваш сам к настоящему времени. Хорошо посмотрите на этот образец:

/// <example>
    /// The following code sample is an implementation of LoadPublishedVersion() for XmlPageProvider.
    /// <code source="../CodeSamples/EPiServerNET/PageProvider/XmlPageProvider.cs" region="LoadPublishedVersion" lang="cs"/>
    /// </example>

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

1
ответ дан 30 November 2019 в 05:44
поделиться

Как любая функция языка, регионы имеют потенциал, который будет неправильно использоваться и злоупотребляться, но они также обладают своими преимуществами.

Они являются великими для создания "складных" групп вокруг:

  • методы, особенно если у Вас есть много перегруженных методов
  • интерфейсные реализации
  • перегрузки оператора

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

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

1
ответ дан 30 November 2019 в 05:44
поделиться

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

2
ответ дан 30 November 2019 в 05:44
поделиться

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

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

, Например, группируя свойства, события, константы или иначе вместе действительно не имеет смысла ни один, поскольку код обычно более удобен в сопровождении, если вещи группируются функцией (как в, свойство, которое использует константу, должно быть около той константы, не около других несвязанных свойств просто, потому что это - свойство).

2
ответ дан 30 November 2019 в 05:44
поделиться

Существуют времена, когда Ваши методы должны быть длинными, особенно с веб-разработкой. В тех случаях (такой как тогда, когда у меня есть gridview с большим, сложным объектом, связанным с ним) я нашел полезным использовать регионы:

#region Declaring variables for fields and object properties

#region Getting the fields in scope

#region Getting the properties of the object

#region Setting Fields

Это дискретные разделы метода, который МОГ вспыхнуться, но это будет трудно (я должен был бы использовать переменные с большим объемом, чем я люблю или передаю МНОГО переменных как), и это - основная инфраструктура.

В этом случае, регионы совершенно приемлемы. В других они бесполезны.

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

регионы являются только проблемой при использовании в качестве опоры, или когда они покрывают плохой код (например, если Вы - вложенные регионы друг в друге в том же объеме, это - плохой знак).

2
ответ дан 30 November 2019 в 05:44
поделиться

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

1
ответ дан 30 November 2019 в 05:44
поделиться
Другие вопросы по тегам:

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