Переменные C# и (примитивные) типы данных
Переменные C# и (примитивные) типы данных
В этом руководстве мы узнаем о переменных, о том, как создавать переменные в C#, и о различных типах данных, которые поддерживает язык программирования C#.
Переменная — это символическое имя, присвоенное ячейке памяти. Переменные используются для хранения данных в компьютерной программе.
<час>Как объявлять переменные в C#?
Вот пример объявления переменной в C#.
int age;
В этом примере переменная age типа int
(целое число) объявлено и может хранить только целые значения.
Мы можем присвоить значение переменной позже в нашей программе следующим образом:
int age; ... ... ... age = 24;
Однако переменная также может быть инициализирована некоторым значением во время объявления. Например,
int age = 24;
Здесь переменная age типа int
объявляется и инициализируется как 24
одновременно.
Поскольку это переменная, мы также можем изменить значение переменных. Например,
int age = 24; age = 35;
Здесь значение age изменено с 24 на 35.
<час>Переменные в C# должны быть объявлены до того, как их можно будет использовать. Это означает, что имя и тип переменной должны быть известны до того, как им будет присвоено значение. Вот почему C# называют языком со статической типизацией.
После объявления тип данных переменной не может быть изменен в пределах области видимости. Область видимости можно рассматривать как блок кода, в котором переменная видна или доступна для использования. Если вы не понимаете предыдущее утверждение, не волнуйтесь, мы узнаем об областях видимости в следующих главах.
Пока помните, что мы не можем сделать в C# следующее:
int age; age = 24; ... ... ... float age;<час>
Неявно типизированные переменные
В качестве альтернативы в C# мы можем объявить переменную, не зная ее типа, используя var
ключевое слово. Такие переменные называются локальными переменными с неявным типом. .
Переменные, объявленные с помощью var
ключевое слово должно быть инициализировано во время объявления.
var value = 5;
Компилятор определяет тип переменной по значению, присвоенному переменной. В приведенном выше примере значение имеет тип int
. Это эквивалентно:
int value; value = 5;
Вы можете узнать больше о неявно типизированных локальных переменных.
<час>Правила именования переменных в C#
Есть определенные правила, которым мы должны следовать при именовании переменной. Правила именования переменных в C#:
- Имя переменной может содержать только буквы (прописные и строчные), знак подчеркивания (_) и цифры.
- Имя переменной должно начинаться с буквы, знака подчеркивания или символа @. Например,
Правила именования переменных в C# Имена переменных Примечания имя Действительно subject101 Действительно _age Действительно (наилучшая практика для именования закрытых переменных-членов) @break Действительный (используется, если имя является зарезервированным ключевым словом) 101тема Неверный (начинается с цифры) ваше_имя Действительно ваше имя Неверный (содержит пробелы) - C# чувствителен к регистру. Это означает возраст и Возраст относится к двум разным переменным.
- Имя переменной не должно быть ключевым словом C#. Например,
if
,for
,using
не может быть именем переменной. Подробнее о ключевых словах C# мы поговорим в следующем руководстве.
Рекомендации по именованию переменных
- Выберите имя переменной, которое имеет смысл. Например, имя , возраст , тема имеет больше смысла, чем n , а и s .
- Используйте camelCase нотация (начинается со строчной буквы) для именования локальных переменных. Например, количествостудентов , возраст и т. д.
- Используйте PascalCase или CamelCase (начинается с заглавной буквы) для именования общедоступных переменных-членов. Например, Имя , Цена и т. д.
- Используйте начальное подчеркивание (_), за которым следует camelCase. нотация для именования закрытых переменных-членов. Например, _bankBalance , _emailAddress и т. д.
Подробнее о соглашениях об именах в C# можно узнать здесь.
Не беспокойтесь об общедоступных и частных переменных-членах. Мы узнаем о них в следующих главах.
<час>Примитивные типы данных C#
Переменные в C# можно разделить на два типа:Типы значений. и Типы ссылок. . В этом руководстве мы обсудим примитивные (простые) типы данных, которые являются подклассом типов значений.
Ссылочные типы будут рассмотрены в последующих руководствах. Однако, если вы хотите узнать больше о типах переменных, посетите раздел Типы и переменные C# (официальная документация по C#).
Булевское значение (bool)
- Булев тип данных имеет два возможных значения:
true
илиfalse
- Значение по умолчанию :
false
- Логические переменные обычно используются для проверки условий, таких как операторы if. , петли и т. д.
Например:
using System;
namespace DataType
{
class BooleanExample
{
public static void Main(string[] args)
{
bool isValid = true;
Console.WriteLine(isValid);
}
}
}
Когда мы запустим программу, вывод будет таким:
True<час>
Подписанный интеграл
Эти типы данных содержат целочисленные значения (как положительные, так и отрицательные). Из всех доступных битов один бит используется для знака.
<сильный>1. сбайт
- Размер :8 бит
- Диапазон :от -128 до 127.
- Значение по умолчанию :0
Например:
using System;
namespace DataType
{
class SByteExample
{
public static void Main(string[] args)
{
sbyte level = 23;
Console.WriteLine(level);
}
}
}
Когда мы запустим программу, вывод будет таким:
23
Попробуйте задать значения вне допустимого диапазона, т. е. меньше -128 или больше 127, и посмотрите, что произойдет.
<час><сильный>2. короткий
- Размер :16 бит
- Диапазон :от -32 768 до 32 767
- Значение по умолчанию :0
Например:
using System;
namespace DataType
{
class ShortExample
{
public static void Main(string[] args)
{
short value = -1109;
Console.WriteLine(value);
}
}
}
Когда мы запустим программу, вывод будет таким:
-1109<час>
<сильный>3. интервал
- Размер :32 бита
- Диапазон :с -231 по 231-1
- Значение по умолчанию :0
Например:
using System;
namespace DataType
{
class IntExample
{
public static void Main(string[] args)
{
int score = 51092;
Console.WriteLine(score);
}
}
}
Когда мы запустим программу, вывод будет таким:
51092<час>
<сильный>4. длинный
- Размер :64 бита
- Диапазон :от -263 до 263-1
- Значение по умолчанию :
0L
[L в конце представляет значение длинного типа]
Например:
using System;
namespace DataType
{
class LongExample
{
public static void Main(string[] args)
{
long range = -7091821871L;
Console.WriteLine(range);
}
}
}
Когда мы запустим программу, вывод будет таким:
-7091821871<час>
Интеграл без знака
Эти типы данных содержат только значения, равные или большие 0. Обычно мы используем эти типы данных для хранения значений, когда уверены, что у нас не будет отрицательных значений.
<сильный>1. байт
- Размер :8 бит
- Диапазон :от 0 до 255.
- Значение по умолчанию :0
Например:
using System;
namespace DataType
{
class ByteExample
{
public static void Main(string[] args)
{
byte age = 62;
Console.WriteLine(level);
}
}
}
Когда мы запустим программу, вывод будет таким:
62<час>
<сильный>2. короткий
- Размер :16 бит
- Диапазон :от 0 до 65 535
- Значение по умолчанию :0
Например:
using System;
namespace DataType
{
class UShortExample
{
public static void Main(string[] args)
{
ushort value = 42019;
Console.WriteLine(value);
}
}
}
Когда мы запустим программу, вывод будет таким:
42019<час>
<сильный>3. нет
- Размер :32 бита
- Диапазон :от 0 до 232-1
- Значение по умолчанию :0
Например:
using System;
namespace DataType
{
class UIntExample
{
public static void Main(string[] args)
{
uint totalScore = 1151092;
Console.WriteLine(totalScore);
}
}
}
Когда мы запустим программу, вывод будет таким:
1151092<час>
<сильный>4. улонг
- Размер :64 бита
- Диапазон :от 0 до 264-1
- Значение по умолчанию :0
Например:
using System;
namespace DataType
{
class ULongExample
{
public static void Main(string[] args)
{
ulong range = 17091821871L;
Console.WriteLine(range);
}
}
}
Когда мы запустим программу, вывод будет таким:
17091821871<час>
Плавающая точка
Эти типы данных содержат значения с плавающей запятой, то есть числа, содержащие десятичные значения. Например, 12,36, -92,17 и т. д.
<сильный>1. плавающий
- Тип с плавающей запятой одинарной точности
- Размер :32 бита
- Диапазон :от 1,5 × 10–45 до 3,4 × 1038
- Значение по умолчанию :0.0F [F в конце означает, что значение имеет тип float]
Например:
using System;
namespace DataType
{
class FloatExample
{
public static void Main(string[] args)
{
float number = 43.27F;
Console.WriteLine(number);
}
}
}
Когда мы запустим программу, вывод будет таким:
43.27<час>
<сильный>2. двойной
- Тип с плавающей запятой двойной точности. В чем разница между одинарной и двойной точностью с плавающей запятой?
- Размер :64 бита
- Диапазон :от 5,0 × 10–324 до 1,7 × 10 308
- Значение по умолчанию :0.0D [D в конце представляет значение типа double]
Например:
using System;
namespace DataType
{
class DoubleExample
{
public static void Main(string[] args)
{
double value = -11092.53D;
Console.WriteLine(value);
}
}
}
Когда мы запустим программу, вывод будет таким:
-11092.53<час>
Персонаж (char)
- Он представляет собой 16-битный символ Юникода.
- Размер :16 бит
- Значение по умолчанию :'\0'
- Диапазон :от U+0000 ('\u0000') до U+FFFF ('\uffff')
Например:
using System;
namespace DataType
{
class CharExample
{
public static void Main(string[] args)
{
char ch1 ='\u0042';
char ch2 = 'x';
Console.WriteLine(ch1);
Console.WriteLine(ch2);
}
}
}
Когда мы запустим программу, вывод будет таким:
B x
Юникодное значение 'B'
'\u0042'
, следовательно, печатая ch1 напечатает 'B'
.
Десятичный
- Десятичный тип имеет большую точность и меньший диапазон по сравнению с типами с плавающей запятой (double и float). Так что это подходит для денежных расчетов.
- Размер :128 бит
- Значение по умолчанию :0.0M [M в конце означает, что значение имеет десятичный тип]
- Диапазон :(от -7,9 x 1028 до 7,9 x 1028) / (от 100 до 28)
Например:
using System;
namespace DataType
{
class DecimalExample
{
public static void Main(string[] args)
{
decimal bankBalance = 53005.25M;
Console.WriteLine(bankBalance);
}
}
}
Когда мы запустим программу, вывод будет таким:
53005.25
Суффикс M
или m
должно быть добавлено в конце, иначе значение будет рассматриваться как двойное и будет сгенерирована ошибка.
Литералы C#
Давайте посмотрим на следующее утверждение:
int number = 41;
Здесь
int
это тип данных- число является переменной и
41
является буквальным
Литералы — это фиксированные значения, которые появляются в программе. Они не требуют никаких вычислений. Например, 5
, false
, 'w'
— это литералы, которые появляются в программе напрямую без каких-либо вычислений.
Булевы литералы
- true и false — доступные логические литералы.
- Они используются для инициализации логических переменных.
Например:
bool isValid = true; bool isPresent = false;<час>
Целые литералы
- Целые литералы используются для инициализации переменных целочисленных типов данных, например
sbyte
. ,short
,int
,long
,byte
,ushort
,uint
иulong
. - Если целочисленный литерал заканчивается на
L
илиl
, это тип long. Для лучшей практики используйтеL
(неl
).long value1 = 4200910L; long value2 = -10928190L;
- Если целочисленный литерал начинается с
0x
, он представляет собой шестнадцатеричное значение. Число без префиксов рассматривается как десятичное значение. Восьмеричное и двоичное представление не разрешено в C#.int decimalValue = 25; int hexValue = 0x11c;// decimal value 284
Литералы с плавающей запятой
- Литералы с плавающей запятой используются для инициализации переменных типов данных float и double.
- Если литерал с плавающей запятой заканчивается суффиксом
f
илиF
, это тип float. Точно так же, если он заканчивается наd
илиD
, это тип double. Если ни один из суффиксов не присутствует, он имеет тип double по по умолчанию. . - Эти литералы содержат e или E, если они выражены в экспоненциальном представлении.
double number = 24.67;// double by default float value = -12.29F; double scientificNotation = 6.21e2;// equivalent to 6.21 x 102 i.e. 621
Символьные и строковые литералы
- Символьные литералы используются для инициализации переменных типа данных char.
- Символьные литералы заключаются в одинарные кавычки. Например,
'x'
,'p'
и т. д. - Они могут быть представлены в виде символа, шестнадцатеричной escape-последовательности, представления Unicode или целочисленных значений, приведенных к char.
char ch1 = 'R';// character char ch2 = '\x0072';// hexadecimal char ch3 = '\u0059';// unicode char ch4 = (char)107;// casted from integer
- Строковые литералы — это набор символьных литералов.
- Они заключаются в двойные кавычки. Например,
"Привет"
,
"Простое программирование"
и т. д.
string firstName = "Richard"; string lastName = " Feynman";
- C# также поддерживает символы управляющей последовательности, такие как:
Символ Значение \'
Одинарная кавычка \"
Двойная кавычка \\
Обратная косая черта \n
Новая строка \r
Возврат каретки \t
Горизонтальная вкладка \a
Предупреждение \b
Возврат
Язык C