Объявление констант в проекте

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

  1. Константы в публичном модуле.

  2. Константы в не наследуемом (запечатанном) классе

Кто-нибудь использует какой-либо другой подход для постоянного объявления?

Есть ли разница между этими подходами, есть плюсы и минусы?

Спасибо.

11.12.2008 12:40:03
3 ОТВЕТА
РЕШЕНИЕ

Поместите константу в класс, где это наиболее актуально - например Math.Pi, Int32.MinValueи т. Д.

Я видел различные константы, которые тоже должны быть перечислениями - особенно для кодов состояния и т. Д.

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

13
11.12.2008 12:42:08

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

3
11.12.2008 14:18:56

Моя практика похожа на то, что утверждает Джон. Подавляющее большинство перечислений и констант, очевидно, связаны с определенным классом или модулем и объявлены там публично.

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

Существует аналогичная область для модели приложения, в которую входят утилиты, которые обычно используются для этого приложения. И это куда константы, которые не могут быть привязаны к какому-либо одному классу МОДЕЛИ.

Таким образом, есть три области, где константа может быть найдена в моей личной структуре

Объявления класса Общий служебный модуль модели приложения Общий служебный модуль сборки утилиты.

На практике только горстка из десятков перечислений и констант когда-либо должна была быть объявлена ​​в любом из служебных модулей. Большинство из них - замедления Win32, используемые функцией Win32, которые импортируются в мою сборку.

1
11.12.2008 13:42:24