В C можно определить константы, как этотКак определить константы в Visual C#, как #define в C?
#define NUMBER 9
так, что везде, где появляется число в программе оно заменяется на 9. Но Visual C# не делает этого. Как это делается?
В C можно определить константы, как этотКак определить константы в Visual C#, как #define в C?
#define NUMBER 9
так, что везде, где появляется число в программе оно заменяется на 9. Но Visual C# не делает этого. Как это делается?
public const int NUMBER = 9;
Вы должны были бы поместить его в классе где-нибудь, а использование было бы ClassName.NUMBER
Если это не макрос, почему есть отвратительные имена всех кепок? Мог бы также дать константу значимое имя и считать его действительным константой, а не притворяться, что это макрос. –
Есть ли способ определить программные переменные, которые не нужно вызывать с помощью класса? – MichaelvdNet
@MrUniverse Я согласен с вами, я ненавижу, когда вижу 'Constants.SECURITY_KEY'. Я предпочитаю 'Constants.SecurityKey'. –
Вы не можете сделать это на C#. Вместо этого используйте const int
.
Проверить How to: Define Constants in C# на MSDN:
В C# препроцессор директива
#define
не может быть использована для определения констант в способе, который обычно равен , используемому в C и 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;
}
Добро пожаловать на SO, здесь, это хорошая практика, чтобы объяснить, почему использовать ваше решение, а не только как. Это сделает ваш ответ более ценным и поможет читателю лучше понять, как вы это делаете. Я также предлагаю вам ознакомиться с нашими часто задаваемыми вопросами: http://stackoverflow.com/faq. – ForceMagic
Если это не макрос, почему есть отвратительные имена всех кепок? Могут также дать им значимые имена и рассмотреть их действительные константы, а не притворяться, что они являются макросами. –
в языке Си: #define
(например, #define счетчика 100)
на языке ассемблера: фас (например, счетчик фас 100)
В C# языке: according to msdn refrence: Для определения символа используется #define
. При использовании символа в качестве выражения, который передается в #if
директивы, выражение будет вычисляться так, как показано в следующем примере:
# define DEBUG
директива #define
не может быть использован для объявления постоянных значений, как это обычно сделанные в C и C++. Константы в C# лучше всего определяются как статические члены класса или структуры. Если у вас есть несколько таких констант, подумайте о создании отдельного класса «Константы» для их хранения.
В C#, для каждой библиотеки MSDN, у нас есть ключевое слово "const", которое выполняет работу ключевого слова #define на других языках.
«... когда компилятор встречает постоянный идентификатор в исходном коде C# (например, месяцев), он заменяет буквальное значение непосредственно на код промежуточного языка (IL), который он производит». (https://msdn.microsoft.com/en-us/library/ms173119.aspx)
Инициализировать константы во время декларирования, так как их не менять.
public const int cMonths = 12;
Лучше вариант использования для C#: '#define SomeType TypeOf (MyClass)', для использования, чтобы держать вещи D.R.Y. при вызове чего-то типа 'SomeMethod()'. –