Вступ до типів даних C #
Як випливає з назви, тип даних - це тип даних, який ви збираєтеся зберігати у своїй змінній. Тип даних використовується для того, щоб підказати компілятору або інтерпретатору, який тип даних він буде обробляти і скільки пам'яті буде потрібно для цих даних.
Для Ex: int - це тип даних, який зберігає числове значення та потребує чотирьох байтів.
Оскільки C # є сильно набраною мовою, перед її використанням необхідно оголосити тип змінної або константи. Відповідне використання типів даних економить пам’ять та покращує продуктивність програми.
Синтаксис:
datatype = value;
Приклади типів даних C #:
1. int intVal = 55; У цьому прикладі: int - тип даних, intVal - ім'я змінної, 55 - значення.
2. char charVal = 'A';
3. string strVal = "Привіт, світ!";
4. float floatVal = 15.5f;
5. bool boolVal = вірно;
Топ 3 типи даних C #
Типи даних C # поділяються на три категорії:
1. Типи значення
- Безпосередньо зберігає значення змінної в пам'яті.
- Приймає як підписані, так і непідписані літерали.
- У C # є два типи даних про значення:
- Заздалегідь визначені типи даних, такі як int, char, bool тощо.
- Визначені користувачем типи даних, такі як enum, структура тощо.
2. Довідкові типи
- Вони зберігають адресу змінної, тобто містять посилання на змінну.
- Якщо дані будуть змінені однією змінною, інша змінна автоматично отримає оновлене значення.
- У C # є два типи довідкових типів:
- Заздалегідь визначені типи, такі як Object, String
- Визначені користувачем типи, такі як Class, Interface
3. Типи вказівників
- Вони містять адресу пам'яті змінної.
- Символи, які використовуються в покажчику:
- & (ampersand) - Оператор адреси, визначає адресу змінної
- * (зірочка) - оператор непрямого доступу, що отримує доступ до значення адреси
Приклади різних типів даних
Нижче наведено кілька прикладів різних типів даних у C #,
Приклад №1: Деякі типи значень
using System;
public class ValueDataTypes
(
public static void Main()
(
//int - 32-bit signed integer type
int i = 55;
//char - 16-bit Unicode character
char ch = 'A';
//short - 16-bit signed integer type
short s = 56;
//long - 64-bit signed integer type
long l = 5564;
//uint - 32-bit unsigned integer type
uint ui = 100;
//ushort - 16-bit unsigned integer type
ushort us = 80;
//ulong - 64-bit unsigned integer type
ulong ul = 3625573;
//double - 64-bit double precision floating point type
double d = 6.358674532;
//float - 32-bit single-precision floating point type
//float needs 'f' or 'F' as suffix
float f = 2.7330645f;
//decimal - 128-bit precise decimal values with 28-29 significant digits
//decimal needs 'm' or 'M' as suffix
decimal dec = 339.5m;
Console.WriteLine("Integer: " + i);
Console.WriteLine("Char: " + ch);
Console.WriteLine("Short: " + s);
Console.WriteLine("Long: " + l);
Console.WriteLine("Unsinged integer: " + ui);
Console.WriteLine("Unsinged short: " + us);
Console.WriteLine("Unsinged long: " + ul);
Console.WriteLine("Double: " + d);
Console.WriteLine("Float: " + f);
Console.WriteLine("Decimal: " + dec);
)
)
Вихід:
Приклад №2: Тип даних Bool, Enum та Struct
Структура - це складений тип, який використовується для зберігання пов'язаних даних з різними типами даних. Enum використовується для присвоєння імен інтегральним константам.
using System;
public class BoolEnumStruct
(
//declaring enum
enum Days ( Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday );
//declaring structure
struct Student
(
public int Id;
public string FirstName;
public string LastName;
public Student(int id, string fname, string lname)
(
Id = id;
FirstName = fname;
LastName = lname;
)
)
public static void Main()
(
//boolean data type
bool flag = true;
if(flag)
(
Console.WriteLine("Bool value: "+flag);
Console.WriteLine();
)
//Accessing enum value for Friday
Console.WriteLine("Enumeration:");
Console.WriteLine(Days.Friday);
Console.WriteLine((int)Days.Friday);
Console.WriteLine();
//passing values to structure members using constructor
Student student = new Student(1, "Riya", "Sen");
Console.WriteLine("Structure Members:");
Console.WriteLine(student.Id);
Console.WriteLine(student.FirstName);
Console.WriteLine(student.LastName);
)
)
Вихід:
Приклад №3: Типи довідкових даних
using System;
public class StrObjDynamic
(
public static void Main()
(
string str = "C# ";
str += "Data Types";
Console.WriteLine("String: "+str);
Console.WriteLine();
//declaring object
object obj;
obj = 100;
Console.WriteLine("Object: "+obj);
//displaying type of object using GetType()
Console.WriteLine(obj.GetType());
Console.WriteLine();
//declaring dynamic variables
dynamic value1 = "Hello World!";
dynamic value2 = 5296;
dynamic value3 = 6.5;
//displaying actual type of dynamic variables using GetType()
Console.WriteLine("Dynamic:");
Console.WriteLine("Type of value1: (0)", value1.GetType().ToString());
Console.WriteLine("Type of value2: (0)", value2.GetType().ToString());
Console.WriteLine("Type of value3: (0)", value3.GetType().ToString());
)
)
Вихід:
Приклад №4: Інтерфейс
Інтерфейс може бути властивостями, методами, подіями та індексаторами як його учасниками. Він містить лише декларацію своїх членів. Реалізація його членів забезпечується класом, що реалізує це неявно або прямо.
using System;
interface Shape
(
void rectangle();
)
public class Area : Shape
(
//implementing interface method
public void rectangle()
(
Console.WriteLine("Area of rectangle is Length * Breadth");
)
public static void Main(String() args)
(
Area area = new Area();
area.rectangle();
)
)
Вихід:
Приклад №5: Делегат
Делегат - це об'єкт, який містить посилання на метод.
using System;
public class DelegateDemo
(
// Declaring delegate
public delegate void Sum(int a, int b);
public void SumVal(int a, int b)
(
Console.WriteLine(a +"+"+ b+ " = (0)", a + b);
)
public static void Main(String() args)
(
DelegateDemo delegateDemo = new DelegateDemo();
// Creating object of delegate
Sum sum = new Sum(delegateDemo.SumVal);
//Passing values to the method using delegate object
sum(100, 100);
)
)
Вихід:
Висновок
- Тип значення зберігається в стеку.
- Довідковий тип зберігається в купі.
- Коли тип значення перетворюється на тип посилання, він називається бокс (неявний процес перетворення) .
- Коли тип посилання перетворюється на тип значення, він називається розпакуванням (явний процес перетворення) .
Рекомендовані статті
Це посібник щодо типів даних C #. Тут ми обговорюємо типи C # разом з різними прикладами типів даних. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- Як отримати доступ до просторів імен у C #?
- 2D масиви в C #
- Обмін на C #
- Об'єкти в C #
- Обмін на PHP
- 3 різні типи масивів у PHP (приклади)
- Типи даних PHP з прикладами