
2.4. Объявления переменных и констант базовых типов
По традиции, унаследованной от языков C и C++, новый экземпляр (переменная) простого типа вводится с помощью объявления: type name = expression; где type – название типа;
name – имя экземпляра (переменной);
expression – инициализирующее выражение (например, константа).
Объявление завершается обязательно точкой с запятой. Названия базовых типов с примерами объявлений приведены в табл. 2.1.
В одном объявлении могут быть определены несколько переменных одного типа:
type name1 = expression1, name2 = expression 2;
Переменные одного объявления отделяются друг от друга запятыми.Пример:
double pi=3.141593, е=2.718282, с=535.491656;
Таблица 2.1. Простые (базовые) типы значений.
Тип |
Описание |
Примеры объявлений |
sbyte |
8-битовый знаковый целый (1 байт) |
sbyte val = 12; |
short |
16-битовый знаковый целый (2 байта) |
short val = 12; |
int |
32-битовый знаковый целый (4 байта) |
int val = 12; |
long |
64-битовый знаковый целый (8 байтов) |
long val1 = 12; long val2 = 34L; |
byte |
8-битовый беззнаковый целый (1 байт) |
byte val1 = 12; |
ushort |
16-битовый беззнаковый целый (2 байта) |
ushort val1 = 12; |
uint |
32- битовый беззнаковый целый (4 байта) |
uint val1 = 12; uint val2 = 34u; |
ulong |
64- битовый беззнаковый целый (8 байтов) |
ulong val1 = 12; ulong val2 = 34U; ulong val3 = 56l; ulong val4 = 78UL; |
float |
Вещественный с плавающей точкой с одинарной точностью (4 байта) |
float val = 1.23F; |
double |
Вещественный с плавающей точкой с двойной точностью (8 байтов) |
double val1 = 1.23; double val2 = 4.56D; |
bool |
Логический тип; значение или false, или true |
bool val1 = true; bool val2 = false; |
char |
Символьный тип; значение - один символ Юникода (2 байта) |
char val = 'h'; |
decimal |
Точный денежный тип, по меньшей мере 28 значимых десятичных разрядов (12 байтов) |
decimal val = 1.23M; |
Введя формат объявления переменных, следует остановиться на вопросе выбора их имен. Имя переменной – выбранный программистом идентификатор. Идентификатор это последовательность букв, десятичных цифр и символов подчеркивания, которая начинается не с цифры. В языке C# в качестве букв допустимо применять буквы национальных алфавитов. Таким образом, правильными идентификаторами будут, например, такие последовательности:
Number_of_Line, объем_в_литрах, х14, mass.
В качестве имен, вводимых программистом, запрещено использовать служебные (ключевые) слова языка C#. Чтобы уже сейчас предостеречься от такой ошибки, обратите внимание на их список, приведенный в таблице 2.2.
Таблица 2.2. Служебные Слова языка 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 |
finalize |
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 |
virtual |
void |
volatile |
while |
|
|
|
Познакомившись со списком служебных слов, читатель сразу же обнаружит ошибку в следующем объявлении:
int try = 15; //ошибка в имени переменной!
Инициализирующее выражение по типу вычисляемого значения должно соответствовать типу создаваемой переменной. Чаще всего это константа, однако, может быть любым выражением, операнды которого имеют конкретные значения в момент объявления переменной.
Примеры объявлений переменных:
double pi2=6.28;
int два=2;
В объявлении переменной может отсутствовать инициализация. Однако язык C# очень строг и не допускает существования в программе переменных снеопределёнными значениями. Поэтому после объявления переменной без её инициализации необходимо каким-то образом присвоить ей значение. Обычно для этого используют оператор присваивания:
имя_переменной = выражение;
Пример (удельный заряд электрона в единицах СГСЭ):
double electron_charge; // объявление
electron_charge=5.27e+17; // присваивание значения
В отличие от литералов, которые сами по себе представляют собственные значения и не требуют предварительных объявлений, именованные константы вводятся с помощью конструкции
const type name = expression;
Отличие от объявления переменной: наличие модификатора const и обязательность инициализации.