Какие типы данных существуют в C#

Kakie Tipy Dannyh Susestvuut V C



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

Какие типы данных существуют в C#?

С# — это строго типизированный язык программирования , что означает, что все переменные должны быть объявлены с определенным типом данных и имеют три основные категории типов данных:







1: Типы значений данных

Типы данных значений — это те, которые хранят свои значения непосредственно в памяти. Они размещаются в стеке и часто используются для хранения небольших наборов данных. Ниже приведены подкатегории типов данных значений:



Числовой тип данных



Эти типы данных используются для хранения числовых значений. Типы числовых данных делятся на несколько подкатегорий, таких как десятичные числа, целые числа и числа с плавающей запятой:





  • Целые числа: Эти типы данных используются для хранения целых чисел, а подкатегории целых чисел включают sbyte, byte, short, ushort, int, uint, long и ulong. Диапазон значений, которые может содержать каждый целочисленный формат данных, различается.
  • Числа с плавающей запятой: Эти типы данных используются для хранения десятичных чисел, а подкатегории чисел с плавающей запятой включают float и double. Float может хранить до 7 десятичных цифр, а double может хранить до 15 десятичных цифр.
  • Десятичные: Эти типы данных используются для хранения десятичных целых чисел высокой точности. Decimal может хранить до 28 десятичных цифр.

Логический тип данных

Логические значения, которые могут быть только истинными или ложными, хранятся в этой форме данных.



Символьный тип данных

Отдельные символы хранятся с использованием этого типа данных.

Пример

В следующем примере кода показано, как использовать тип данных value в C#:

с помощью системы;

пространство имен
{
программа класса
{
статическая пустота Главная ( нить [ ] аргументы )
{
интервал мойInt = 5 ;
поплавок myFloat = 3.14f;
двойной myDouble = 3.14159265359 ;
логическое значение myBool = истинный ;
символ myChar = а ;

Console.WriteLine ( 'Мое целочисленное значение: ' + мойИнт ) ;
Console.WriteLine ( «Мое значение с плавающей запятой:» + мой поплавок ) ;
Console.WriteLine ( 'Мое двойное значение:' + мой двойник ) ;
Console.WriteLine ( 'Мое логическое значение: ' + мойБул ) ;
Console.WriteLine ( 'Ценность моего персонажа: ' + мойЧар ) ;
}
}
}

В этом примере мы объявили и инициализировали переменные с различными типами данных, такими как int, float, double, bool и char. Затем мы распечатали значения этих переменных с помощью метода Console.WriteLine, вывод этой программы будет таким:

2: Типы справочных данных

Типы ссылочных данных — это те, которые хранят ссылку на ячейку памяти, где хранится значение. Они размещаются в куче и обычно используются для хранения больших объемов данных. Ниже приведены подкатегории справочных типов данных:

Сорт

В C# класс — это ссылочный тип, определяющий схему создания объектов.

Нить

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

Множество

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

Интерфейс

Интерфейс определяет набор методов, свойств, событий и индексаторов, не предоставляя никаких подробностей реализации.

делегат

Делегат позволяет вам передать метод в качестве аргумента другому методу, а затем вызвать этот метод позже через делегат.

Пример

Вот пример кода C#, который показывает, как использовать справочные типы данных :

с помощью системы;

класс Человек
{
общедоступная строка Имя;
общественный возраст;
}

программа класса
{
статическая пустота Главная ( нить [ ] аргументы )
{
Человек person1 = новый человек ( ) ;
человек1.Имя = 'САМ' ;
человек1.Возраст = двадцать ;

человек человек2 = человек1;
человек2.Возраст = 30 ;

Console.WriteLine ( человек1.Имя + ' является ' + человек1.Возраст + ' лет.' ) ;
Console.WriteLine ( человек2.Имя + ' является ' + человек2.Возраст + ' лет.' ) ;
}
}

Класс Person в этом примере имеет два общедоступных поля: Name, имеющее тип string, и Age, имеющее тип int. Затем мы создаем новый экземпляр класса Person и назначаем его person1 в методе Main. Мы изменяем атрибуты имени и возраста человека1.

Затем мы создаем еще одну ссылочную переменную person2 и присваиваем ей значение person1. Затем мы меняем свойство Age для person2 на 30.

Наконец, мы распечатываем имя и возраст человека1 и человека2. Обратите внимание, что при изменении значения человек2.Возраст также изменяет значение человек1.Возраст , так как обе переменные относятся к одному и тому же объект в памяти.

3: типы данных указателя

Типы данных указателя используются для хранения адреса памяти другой переменной. Они используются в низкоуровневом программировании, таком как системное программирование или разработка драйверов устройств. . В C# типы данных указателя не используются напрямую. , но их можно использовать в небезопасных блоках кода. Ниже приводится подкатегория типов данных указателя:

Тип данных указателя

Этот тип данных используется для хранения адреса памяти другой переменной.

Вот пример, демонстрирующий использование типы данных указателя в С#, хотя это требует большой осторожности:

с помощью системы;

программа класса {
статическая небезопасная пустота Главная ( ) {
число = 10 ;
инт * р = & на одной;
Console.WriteLine ( $ 'Значение числа: {число}' ) ;
Console.WriteLine ( $ 'Адрес num: {(long)p:X}' ) ;
Console.WriteLine ( $ 'Значение числа с использованием указателя: {*p}' ) ;
Консоль.ReadLine ( ) ;
}
}

В этом примере мы используем ключевое слово unsafe, чтобы разрешить использование указателей. Мы объявляем переменную типа int и присваиваем ей значение 10. Затем мы создаем переменную-указатель pointer типа int* и присваиваем ей адрес памяти значения с помощью оператора &.

Кроме того, мы затем получаем доступ к значению, хранящемуся в value, путем разыменования указателя с помощью оператора *, и мы также можем изменить значение с помощью того же оператора:

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

Заключение

В C# доступно множество различных типов данных, которые можно использовать для различных задач. Меньшие объемы данных хранятся с использованием типов данных значений, а большие объемы хранятся с использованием ссылочных типов данных. Типы данных указателя используются в низкоуровневом программировании и редко используются в C#.