Типи даних у C#: Double, Integer, Float, Char

⚡ Розумний підсумок

Типи даних у C# визначають типи значень, які може містити змінна, починаючи від цілих чисел і чисел з плаваючою комою і закінчуючи логічними та рядковими значеннями, а також визначають, скільки пам'яті кожна змінна резервує під час виконання програми.

  • 🔢 Цілочисельні типи: Ключове слово Int32 (int) зберігає цілі числа, такі як 10, 20 або 30, у фіксованому діапазоні пам'яті.
  • 🔣 Типи чисел з плаваючою комою: double та float містять десяткові значення, тоді як decimal пропонує вищу точність для фінансових розрахунків.
  • ☑️ Булев тип: Ключове слово Boolean зберігає лише значення true або false та керує умовною логікою.
  • 🔤 Типи тексту: char містить один символ, а string зберігає послідовність символів у вигляді тексту.
  • 🧩 Значення проти посилання: Типи значень зберігають дані безпосередньо, тоді як типи посилань, такі як рядки, зберігають адресу пам'яті.
  • 🤖 Допомога AI: GitHub Copilot та ML.NET додають пропозиції коду та машинне навчання до обробки типів C#.

Типи даних у C#

Що таке типи даних у C#?

Мова C# постачається з набором базових типів даних. Ці типи даних використовуються для створення значень, які використовуються в програмі. Давайте дослідимо основні типи даних, доступні в C#. Для кожного прикладу ми будемо змінювати лише основну функцію в нашому файлі Program.cs.

1) Ціле число

Типи даних An Integer використовуються для роботи з числами. У цьому випадку числа є цілими, наприклад 10, 20 або 30. У C# тип даних позначається Ключове слово Int32. Нижче наведено приклад того, як можна використовувати цей тип даних. У нашому прикладі ми визначимо змінну Int32 під назвою num. Потім ми присвоїмо ціле значення змінній, а потім відобразимо його відповідно.

Цілі типи даних у C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Int32 num=30;
   Console.Write(num);  
   
   Console.ReadKey();
  }
 }
}

Code Пояснення:

  1. Тип даних Int32 вказано для оголошення змінної Integer під назвою num. Потім змінній присвоюється значення 30.
  2. Нарешті, функція console.write використовується для відображення числа на консолі.

Якщо наведений вище код введено належним чином і програма виконана успішно, буде показано наступний вихід.

вихід:

Цілі типи даних у C#

З результату ви можете чітко побачити, що змінна Integer під назвою num відображалася на консолі

2) Double

Тип даних double використовується для роботи з десятковими знаками. У цьому випадку це цілі числа, наприклад 10.11, 20.22 або 30.33. У C# тип даних позначається ключовим словом "Double“. Нижче наведено приклад цього типу даних.

У нашому прикладі ми визначимо подвійну змінну під назвою num. Потім ми призначимо a Double значення змінної, а потім відобразити його відповідно

Double Типи даних у C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   double num=30.33;
   Console.Write(num); 
   
   Console.ReadKey();
  }
 }
}

Code Пояснення:

  1. Тип даних double вказується для оголошення типу double змінна називається номер. Потім змінній присвоюється значення 30.33.
  2. Нарешті, функція console.write використовується для відображення числа на консолі.

Якщо наведений вище код введено належним чином і програма виконана успішно, буде показано наступний вихід.

вихід:

Double Типи даних у C#

З результату ви можете чітко побачити, що подвійна змінна під назвою num відображалася на консолі

3) Логічний

Логічний тип даних використовується для роботи з логічними значеннями правда і хибність. У C# тип даних позначається ключовим словом Boolean. Нижче наведено приклад використання цього типу даних.

У нашому прикладі ми визначимо логічну змінну під назвою «статус». Потім ми присвоїмо змінній логічне значення, а потім відобразимо його відповідно.

Логічні типи даних у C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
  { 
   static void Main(string[] args) 
   {
    Boolean status=true;
    Console.Write(status);
    
    Console.ReadKey();
   }
  }
}

Code Пояснення:

  1. Логічний тип даних вказано для оголошення змінної Boolean під назвою «статус». Потім змінній присвоюється значення true/false.
  2. Нарешті, функція console.write використовується для відображення логічного значення на консолі.

Якщо наведений вище код введено належним чином і програма виконана успішно, буде відображено результат.

вихід:

Логічні типи даних у C#

З результату ви можете чітко побачити, що логічна змінна, яка дорівнює true, відображалася на консолі

4) Рядок

Тип даних String використовується для роботи зі значеннями String. У C# тип даних позначається ключовим словом "String". Нижче наведено приклад цього типу даних.

У нашому прикладі ми визначимо змінну String під назвою «message». Потім ми присвоїмо змінній рядкове значення, а потім відобразимо його відповідно.

Рядкові типи даних у C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class program
 {
  static void Main(string[] args)
  {
   String message="Hello";
   Console.Write(message);
   
   Console.ReadKey();
  }
 }
}

Code Пояснення:

  1. Тип даних String вказується для оголошення рядкової змінної під назвою message. Потім змінній присвоюється значення «Привіт».
  2. Нарешті, функція console.write використовується для відображення значення рядка на консолі.

Якщо наведений вище код введено належним чином і програма виконана успішно, буде відображено результат.

вихід:

Рядкові типи даних у C#

З результату ви можете чітко побачити, що змінна String під назвою message була відображена в консолі

Повний список типів даних C#

Чотири наведені вище приклади охоплюють найпоширеніші типи, але C# надає повний набір вбудованих типів даних-значень. Кожен тип резервує фіксований обсяг пам'яті та приймає певний діапазон значень, тому вибір найменшого типу, який безпечно відповідає вашим даним, забезпечує ефективність програми.

Тип даних Розмір Діапазон / Descriptіон
байт Байт 1 0 до 255,
коротка 2 байт -32,768 в 32,767
ціле число (Ціл.32) 4 байт -2,147,483,648 в 2,147,483,647
довго 8 байт Дуже великі цілі числа (±9.2 квінтильйона)
плавати 4 байт Десяткові дроби з точністю приблизно 6–7 знаків
подвійний 8 байт Десяткові дроби з точністю приблизно 15–16 знаків
десятковий знак 16 байт Високоточні десяткові дроби (28–29 цифр) для грошей
бак 2 байт Один символ Юнікоду
бул Байт 1 Правда чи неправда

Поряд із цими типами значень, рядковий тип є найпоширенішим типом посилання та зберігає послідовність символів будь-якої довжини. Вибір відповідного типу запобігає помилкам переповнення та непотрібному використанню пам'яті.

Типи значень проти типів посилань у C#

Кожен тип даних у C# поділяється на одну з двох груп: типи значень та типи посилань. Ця відмінність визначає, як C# зберігає дані та як змінна поводиться під час копіювання або передачі її методу.

  • Типи значень: Вони зберігають фактичні дані безпосередньо, зазвичай у стеку. int, double, bool, char, перерахувати, та struct – це типи значень. Присвоєння однієї змінної іншій копіює значення, тому дві змінні залишаються незалежними.
  • Типи посилань: Вони зберігають посилання (адресу пам'яті), яке вказує на дані в купі. Рядок, об'єкт, масиви та екземпляри класів є типами посилань. Копіювання змінної-посилання копіює лише адресу, тому обидві змінні використовують один і той самий об'єкт.

Змінна типу значення ніколи не може бути null, оскільки вона завжди містить значення, тоді як неініціалізований тип посилання за замовчуванням має значення null. Розуміння цієї різниці допомагає вам передбачити, як зміни в даних проходять через програму.

Перетворення типів у C#

У C# часто потрібно переміщувати значення з одного типу даних до іншого, наприклад, перетворювати введені користувачем дані, які завжди є текстом, на число. Цей процес називається перетворенням типів і відбувається трьома основними способами.

  • Неявне перетворення: Компілятор конвертує автоматично, коли немає ризику втрати даних, наприклад, під час присвоєння цілого типу типу double. Спеціальний синтаксис не потрібен.
  • Явне перетворення (приведення типів): Ви розміщуєте цільовий тип у дужках, наприклад (int)myDoubleПриведення типів може призвести до втрати даних — перетворення типу double на int втрачає десяткову частину — тому ви свідомо приймаєте цей ризик.
  • Допоміжні методи: Клас Convert (Convert.ToInt32) та метод Parse кожного типу (int.Parse) перетворюють рядки на числа, тоді як ToString перетворює значення назад на читабельний текст.

Вибір правильного перетворення забезпечує точність даних і запобігає помилкам під час виконання, коли типи з обох боків присвоєння не збігаються.

Поширені запитання

Типи float, double та decimal зберігають десяткові числа, але відрізняються точністю та розміром. Тип float використовує 4 байти з приблизно 7 цифрами, double — 8 байтів з приблизно 15 цифрами, а decimal — 16 байтів для високоточних фінансових значень.

Немає жодної суттєвої різниці. int — це псевдонім у C# для типу .NET System.Int32, тому int та Int32 компілюються в одне й те саме. Більшість розробників пишуть int для стислості, тоді як Int32 робить базовий тип фреймворку явним.

Рядок є типом посилання, оскільки він зберігає посилання на символьні дані, що зберігаються в купі. Однак, в одному випадку він поводиться як тип значення: рядки є незмінними, тому кожна зміна створює новий об'єкт рядка, а не редагує старий.

Тип, що приймає значення null, дозволяє типу значення, такому як int або bool, також містити значення null, що записується із знаком питання після нього, наприклад, int?. Це корисно для необов'язкових полів даних та бази даних, де відсутнє значення має бути представлене окремо від нуля або хибності.

Символ char містить рівно один символ Unicode та використовує одинарні лапки, наприклад, 'A'. Рядок містить послідовність з нуля або більше символів та використовує подвійні лапки. Символ char – це тип значення, тоді як рядок – це тип посилання.

var визначає тип змінної під час компіляції, а потім цей тип фіксується з повною підтримкою IntelliSense. dynamic відкладає перевірку типів на етапі виконання, тому помилки типу виникають лише під час виконання. Використовуйте var для безпеки, а dynamic — для гнучких сценаріїв із запізненням.

Так. GitHub Copilot пропонує оголошення типів, перетворення та шаблони всередині Visual Studio та Visual Studio CodeВін може рекомендувати відповідний числовий тип або генерувати код парсингу, але вам слід переглянути його вивід, оскільки пропозиції можуть не враховувати проблеми з точністю або переповненням.

Так. ML.NET зіставляє типи даних C# з функціями моделі, використовуючи числові типи, такі як float та double для навчальних даних та string для тексту. Класи даних із строгою типізацією описують кожен стовпець, тому моделі машинного навчання природно інтегруються в програми C#.

Підсумуйте цей пост за допомогою: