Переменная – это именованный участок памяти в котором хранятся данные заданного типа и которая доступна для просмотра, и редактирования в процессе работы программы.
Правила именования переменных
Исходя из определения, видим, что переменные должны иметь: тип данных, значение и имя, по которому к ним обращаются.
В языке C# это можно сделать следующим образом: "тип данных" "имя переменной";
, сперва указан тип данных, который храниться в переменной, а за ним имя.
Имя переменной должно соответствовать следующим правилам:
- начинаться со знака подчеркивания “_“, или Unicode символа(да, в своих приложениях вы можете называть переменные именами, которые состоят из символов национального алфавита);
- может содержать Unicode символы, цифры и знак подчеркивания;
- в именах запрещено использовать специальные символы, пробелы, знаки пунктуации;
- имена не должны совпадать с зарезервированными словами языка программирования C#.
abstract | as | base | bool |
break | byte | case | catch |
char | checked | class | const |
continue | decimal | default | delegate |
do | double | else | enum |
event | explicit | extern | false |
finally | fixed | float | for |
foreach | goto | if | implicit |
in | int | interface | internal |
is | lock | long | namespace |
new | null | object | operator |
out | override | params | private |
protected | public | readonly | ref |
return | sbyte | sealed | short |
sizeof | stackalloc | static | string |
struct | switch | this | throw |
true | try | typeof | uint |
ulong | unchecked | unsafe | ushort |
using | using static | virtual | void |
volatile | while |
Желательно давать переменным такие имена, по которым сразу понятно, для чего используется переменная. Это улучшит понимание и качество кода программы.
Пример объявления переменных:
string text;
int number;
Здесь мы определили две переменные, первая типа строка с именем text, вторая – целое число с именем number.
Если возникает необходимость использовать одно из зарезервированных слов в названии переменной, вы можете это сделать, написав перед именем символ “@”. Например int @while;
.
Учитывайте то, что C# чувствителен к регистру, поэтому следующий код объявления двух переменных – правильный, а созданные переменные используют разные области памяти:
int age;
int Age;
После того, как вы объявили переменную, можно присвоить ей значение. Для этого используется оператор присваивания – “=”
string user;
user = "Alex";
Также мы можем присвоить переменной значение непосредственно во время объявления, это называется инициализация.
string name = "Lisa";
В дальнейшем значение переменной можно многократно читать и редактировать(изменять), присваивая ей новые значения.
Не смотря на то, что C# позволяет использовать в названиях переменных Unicode символы, в частности русские, правила хорошего тона рекомендуют использовать в именах исключительно английские буквы. Потому, что национальные символы усложняют работу с кодом программы, а иногда могут вызвать дисонанс, когда символы визуально идентичны, а их коды разные(к примеру русская буква “с” и английская “c”).
Область видимости переменных
Область видимости или контекст переменной (scope) – это часть программы, в пределах которой, идентификатор остается связанным с данными в памяти, то есть позволяет через себя обращаться к данным.
В C# достаточно просто определить области видимости переменных, поскольку они отделены фигурными скобками “{” и “}”, которые указывают на начало и конец блока кода.
Выходит переменная может войти во вложенные фигурные скобки с высшего уровня, но не может за пределы скобок в которых она объявлена.
Рассмотрим на примере программы:
class Program
{
//контекст уровня класса
private static int num1 = 1;//доступна во всех вложенных в класс методах
static void Main(string[] args)
{
//контекст уровня метода Main
int num2 = 2; //видима только в пределах метода Main
Console.WriteLine(num1 + num2);
}
static void Print()
{
//контекст уровня метода Print
//здесь нельзя обращаться к num2, поскольку она не может выйти за фигурные скобки метода Main
//а к num1 можно, она может войти во вложенные скобки
int num3 = 3; //видима в пределах метода Print
Console.WriteLine(num1 + num3);
}
}