Примитивные типы си шарп

Примитивные типы данных в C#

О ссылочных типах мы поговорим в будущих уроках, но если вы хотите узнать больше о типах переменных, посетите страницу «Типы и переменные» (официальная документация C#).

Логический тип

  • Возможные значения: true и false .
  • Значение по умолчанию: false .
  • Для чего используется: для проверки условий в if-конструкциях, циклах и т.д.

Пример

using System; namespace DataType < class BooleanExample < public static void Main(string[] args) < bool isValid = true; Console.WriteLine(isValid); >> >

Целые числа со знаком

Этот тип данных содержит целочисленные значения: как положительные, так и отрицательные. Один бит памяти, выделенной на такое значение, отводится на знак: + или — .

1. sbyte

  • Размер: 8 бит.
  • Допустимые значения: от -128 до 127.
  • Значение по умолчанию: 0.

Пример

using System; namespace DataType < class SByteExample < public static void Main(string[] args) < sbyte level = 23; Console.WriteLine(level); >> >

Попробуйте присвоить переменной значения вне ее допустимых пределов, то есть меньше -128 и больше 127 и посмотрите, что получится.

2. short

  • Размер: 16 бит.
  • Допустимые значения: от -32768 до 32767.
  • Значение по умолчанию: 0.
Читайте также:  Darkest fear для java

Пример

using System; namespace DataType < class ShortExample < public static void Main(string[] args) < short value = -1109; Console.WriteLine(value); >> >

3. int

  • Размер: 32 бита.
  • Допустимые значения: от -2 31 до 2 31 -1.
  • Значение по умолчанию: 0.

Пример

using System; namespace DataType < class IntExample < public static void Main(string[] args) < int score = 51092; Console.WriteLine(score); >> >

4. long

  • Размер: 64 бита.
  • Допустимые значения: от -2 63 до 2 63 -1.
  • Значение по умолчанию: 0L (L в конце означает, что это значение типа long).

Пример

using System; namespace DataType < class LongExample < public static void Main(string[] args) < long range = -7091821871L; Console.WriteLine(range); >> >

Целые числа без знака

Эти типы данных содержат только значения равные или больше нуля, то есть неотрицательные значения. Если вы уверены, что код не будет пытаться присваивать переменной отрицательное значение, можете смело использовать эти типы данных.

1. byte

  • Размер: 8 бит.
  • Допустимые значения: от 0 до 255.
  • Значение по умолчанию: 0.

Пример

using System; namespace DataType < class ByteExample < public static void Main(string[] args) < byte age = 62; Console.WriteLine(level); >> > 

2. ushort

  • Размер: 16 бит.
  • Диапазон допустимых значений: от 0 до 65535.
  • Значение по умолчанию: 0.

Пример

using System; namespace DataType < class UShortExample < public static void Main(string[] args) < ushort value = 42019; Console.WriteLine(value); >> > 

3. uint

  • Размер: 32 бита.
  • Допустимые значения: от 0 до 2 32 -1.
  • Значение по умолчанию: 0.

Пример

using System; namespace DataType < class UIntExample < public static void Main(string[] args) < uint totalScore = 1151092; Console.WriteLine(totalScore); >> > 

4. ulong

  • Размер: 64 бита.
  • Допустимые значения: от 0 до 2 64 -1.
  • Значение по умолчанию: 0.

Пример

using System; namespace DataType < class ULongExample < public static void Main(string[] args) < ulong range = 17091821871L; Console.WriteLine(range); >> > 

Числа с плавающей точкой

Эти типы данных содержат числа с плавающей точкой, то есть числа с десятичными дробями — например, 12.36, -92.17 и т.д.

Читайте также:  Php ini set error all

1. float

  • Точность: одинарная.
  • Размер: 32 бита.
  • Допустимые значения: от -3.4*10 38 до 3.4*10 38 .
  • Значение по умолчанию: 0.0F (F на конце обозначает, что это значения типа float).

Пример

using System; namespace DataType < class FloatExample < public static void Main(string[] args) < float number = 43.27F; Console.WriteLine(number); >> > 

2. double

  • Точность: двойная. В чем разница между одинарной и двойной точностью.
  • Размер: 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); >> > 

Символьный тип (char)

  • Размер: 16 бит.
  • Допустимые значения: от U+0000 (‘\u0000’) до U+FFFF (‘\uffff’) — символы Unicode.
  • Значение по умолчанию: ‘\0’ .

Пример

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’ в Юникоде — ‘\u0042’ , соответственно, если мы выводим на экран ch1 , C# напечатает ‘B’ .

Тип Decimal

Тип decimal имеет большую точность и меньший диапазон допустимых значений по сравнению с типами с плавающей точкой (double и float), поэтому этот тип данных подходит для денежных расчетов.

  • Размер: 128 бит.
  • Допустимые значения: от ±1.0*10 -28 до ±7.9228*10 28 .
  • Значение по умолчанию: 0.0M (M на конце обозначает, что значение представляет тип decimal).

Пример

using System; namespace DataType < class DecimalExample < public static void Main(string[] args) < decimal bankBalance = 53005.25M; Console.WriteLine(bankBalance); >> > 

После литерала нужно добавить M и m , иначе компилятор воспримет значение как тип double и выдаст ошибку.

Литералы

Рассмотрим следующее выражение:

Литералы — фиксированные значения в программе, они не требуют вычислений. Например, 5 , false , ‘w’ — литералы, которые возникают в программе напрямую без каких-либо вычислений.

Логические литералы

  • Возможные литералы: true и false .
  • Для чего используются: для инициализации переменных логического типа.

Целочисленные литералы

Литералы типа integer используются для инициализации переменных, т.е. sbyte , short , int , long , byte , ushort , uint и ulong .

Если литерал типа integer оканчивается на L или l , то его тип long.

Совет. Лучше используйте L вместо l . Последний вариант легко спутать с I .

long value1 = 4200910L; long value2 = -10928190L;

Если литерал типа integer начинается с 0x , то это шестнадцатеричное значение. Число без префиксов определяется как десятичное значение.

int decimalValue = 25; int hexValue = 0x11c; // десятичное значение — 284

Литералы с плавающей точкой

Литералы с плавающей точкой используются для инициализации переменных типов float и double.

Если литерал с плавающей точкой оканчивается суффиксом f или F , это литерал типа float. А если на d или D , это литерал типа double. Если суффикс опущен, то такой литерал считается типом double по умолчанию.

Такие литералы могут содержать e или E в экспоненциальном представлении.

double number = 24.67; // double по умолчанию float value = -12.29F; double scientificNotation = 6.21e2; // эквивалентно 6.21 x 10^2, т. е. 621

Символьные и строчные литералы

Символьные литералы используются для инициализации переменных типа char. Они заключаются в одинарные кавычки. Например, ‘x’ , ‘p’ и т.д.

Символьные литералы можно представить как символы, шестнадцатеричные управляющие последовательности, представления в unicode или числовые значения, приведенные к типу char.

char ch1 = 'R'; // символ char ch2 = '\x0072'; // шестнадцатеричная управляющая последовательность char ch3 = '\u0059'; // unicode char ch4 = (char)107; // приведение к char

Строковые литералы — набор символьных литералов.Они заключаются в двойные кавычки. Например, «Привет» , «CodeChick» и т. д.

string firstName = "Иван"; string lastName = "Иванов";

C# поддерживает следующие символы управляющих последовательностей:

Источник

Типы данных

C# является строго типизированным языком программирования. Поэтому каждая переменная и константа должна иметь тип. Как и в других языках программирования, в C# есть своя собственная система типов, которая используется при создании переменных.

  • количество памяти, которая необходима для хранения переменной;
  • внутреннюю структуру данных;
  • минимальное и максимальное значения, которое может принимать переменная;
  • методы, поля и события;
  • базовый тип;
  • место в памяти, где располагается переменная;
  • операции которые к нему применяются.

Язык C# использует простые типы данных платформы .Net Framework, при этом в языке, для них, используются псевдонимы, по этому при рассмотрении мы будем указывать как псевдоним, так и полное название типа данных платформы .Net. Для компилятора нет разницы, какую форму записи названий вы используете.

Примитивные типы данных языка C#

bool

Полное название типа: System.Boolean

Используется для объявления переменных, в которых хранятся логические(булевы) значения true или false.

bool isEmpty = true; System.Boolean isFull = false; 

byte

Полное название типа: System.Byte

Целочисленный, беззнаковый тип данных длиной в 1 байт, в котором можно хранить числа из диапазона от 0 до 255.

byte b1 = 21; System.Byte b2 = 125; 

sbyte

Полное название типа: System.SByte

Целочисленный, тип данных со знаком размером в 1 байт, позволяет хранить числа от -128 до 127.

sbyte sb1 = -123; System.SByte sb2 = 42; 

ushort

Полное название типа: System.UInt16

Целочисленный, тип данных без знака, длиной в 2 байта, который может хранить числа из диапазона от 0 до 65 535.

ushort num1 = 324; System.UInt16 num2 = 1024; 

short

Полное название типа: System.Int16

Числовой, тип данных со знаком, размером в 2 байта, в котором можно хранить целые числа из диапазона от -32 768 до 32 767.

short sNum1 = -1995; System.Int16 sNum2 = 2048; 

uint

Полное название типа: System.UInt32

Целочисленный, тип данных без знака, имеет размер — 4 байта, в котором можно хранить число из диапазона от 0 до 4 294 967 295.

uint uiNum1 = 777; System.UInt32 uiNum2 = 11231; 

int

Полное название типа: System.Int32

Целочисленный, знаковый тип данных, занимает 4 байта, в котором можно расположить число от -2 147 483 648 до 2 147 483 647.

int iNum1 = -34531; System.Int32 iNum2 = 56874; 

ulong

Полное название типа: System.UInt64

Целочисленный, беззнаковый, длиной в 8 байт, в котором хранят числа от 0 до 18 446 744 073 709 551 615.

ulong ulNum1 = 7878; System.UInt64 ulNum2 = 78444514; 

long

Полное название типа: System.Int64

Целочисленный, знаковый тип данных, длиной в 8 байт, в котором можно хранить число из диапазона -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807.

long lNum1 = -12897; System.Int64 lNum2 = 56554; 

float

Полное название типа: System.Single

Знаковый тип данных, размером 4 байта для хранения вещественных чисел от ±1.5 ⋅ 10 −45 до ±3.4 ⋅ 10 38

float fNum1 = -3.146; System.Single fNum2 = 12e3; 

double

Полное название типа: System.Double

Знаковый тип данных, занимает 8 байт, хранения чисел с плавающей точкой ±5 ⋅ 10 −324 до ±1.7 ⋅ 10 308

double dNum1 = -22.12; System.Double dNum2 = 1.329e34; 

decimal

Полное название типа: System.Decimal

Знаковый тип данных, занимает 16 байт, для хранения вещественных чисел в диапазоне от ±1 ⋅ 10 −28 до ±7.9228 ⋅ 10 28

decimal decNum1 = -12.23; System.Decimal decNum2 = 1.312e4; 

В отличие от других вещественных типов данных, диапазон decimal уже, при большей точности. Благодаря этому, он идеально подходит для финансовых операций.

C# позволяет получить минимальное и максимальное значения, которое может принимать указанный тип. Минимальное значение хранится в поле – MinValue, а максимальное в – MaxValue.

Console.WriteLine(ulong.MinValue); Console.WriteLine(byte.MaxValue); 

Кроме перечисленных диапазонов значений, типы с плавающей точкой float и double, могут принимать следующие:

  • отрицательный и положительный ноль;
  • отрицательную(NegativeInfinity) и положительную(PositiveInfinity) бесконечность;
  • не числовое значение NaN (Not a Number)

char

Полное название типа: System.Char

Используется для объявления переменной, которая представляет собой один Unicode символ, занимает 2 байта в памяти.

char c1 = 'm'; char c2 = '\u263A'; System.Char tab = '\t'; 

string

Полное название типа: System.String

Может содержать в себе последовательность, от 0 и больше, символов Unicode формата.

string s1 = 'Hi!'; System.String s2 = 'Smile \u263A'; 

object

Полное название типа: System.Object

Этот тип данных является базовым(все другие от него наследуются) для всех других типов платформи .Net. Может хранить в себе значение любого другого типа данных.

object o1 = 564; System.Object o2 = "Hello"; 

Неявная типизация

Неявная или утиная типизация (duck typing) – типизация, при которой переменная остается строго типизированной, а её тип определяется компилятором, исходя из присваиваемого значения.

Название утиная типизация происходит от “утиного теста”:

«Если оно выглядит, плавает и крякает как утка, то наверное это и есть утка»

В версии C# 3.0 появилась возможность, неявно типизировать данные. Это позволило упростить написание и анализ кода программ, поскольку часто у классов очень длинные названия.

Для неявной типизации, вместо типа данных, указывают ключевое слово var.

Следующие две строки эквивалентны:

Для неявной типизации характерны две особенности:

  • переменную необходимо инициализировать сразу после объявления;
  • нельзя инициализировать переменную null-литералом(поскольку null не имеет явного типа).

Компилятор автоматически ставит тип данных int – для целых чисел, и double – для вещественных.

Использование литеральных суффиксов

При использовании неявной типизации, или перегруженных методов, которые могут принимать значения разных типов данных, время от вермени, появляется необходимость указать тип данных литерала. Для этого в C# используются литеральные суффиксы.

Тип Суффикс Пример использования використання
uint U 123U
ulong UL 11UL
long L 222L
float F 2.2F
double D 2.3D
decimal M 1.2M

Регистр написания суффиксов не важен.

Источник

Оцените статью