В C вы можете определить константы, подобные этому
#define NUMBER 9
чтобы везде, где NUMBER появляется в программе, он заменяется на 9. Но Visual С# этого не делает. Как это делается?
В C вы можете определить константы, подобные этому
#define NUMBER 9
чтобы везде, где NUMBER появляется в программе, он заменяется на 9. Но Visual С# этого не делает. Как это делается?
public const int NUMBER = 9;
Вам нужно будет поместить его в класс где-нибудь, а использование будет ClassName.NUMBER
Вы не можете сделать это на С#. Вместо этого используйте const int
.
Проверить Как определить константы в С# в MSDN:
В С# препроцессор
#define
директива не может использоваться для определения константы в способе, который обычно используется в C и С++.
static class Constants
{
public const int MIN_LENGTH = 5;
public const int MIN_WIDTH = 5;
public const int MIN_HEIGHT = 6;
}
// elsewhere
public CBox()
{
length = Constants.MIN_LENGTH;
width = Constants.MIN_WIDTH;
height = Constants.MIN_HEIGHT;
}
на языке c: #define
(например, #define counter 100)
в языке ассемблера: equ (например, счетчик 100)
в языке С#: согласно msdn refrence:
Вы используете #define
для определения символа. Когда вы используете символ в качестве выражения, переданного директиве #if
, выражение будет оцениваться как true, как показано в следующем примере:
# define DEBUG
Директива #define
не может использоваться для объявления постоянных значений, как это обычно делается на C и С++. Константы в С# лучше всего определяются как статические члены класса или структуры. Если у вас есть несколько таких констант, подумайте о создании отдельного класса "Константы" для их хранения.
В С# для каждой библиотеки MSDN мы имеем ключевое слово "const", которое выполняет работу ключевого слова "#define" на других языках.
"... когда компилятор встречает постоянный идентификатор в исходном коде С# (например, месяцы), он заменяет буквальное значение непосредственно на код промежуточного языка (IL), который он производит." (https://msdn.microsoft.com/en-us/library/ms173119.aspx)
Инициализировать константы во время объявления, так как их не изменять.
public const int cMonths = 12;