Типове данни в 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) Цяло число

Типовете данни Integer се използват за работа с числа. В този случай числата са цели числа като 10, 20 или 30. В C# типът данни се обозначава с Ключова дума Int32. По-долу е даден пример как може да се използва този тип данни. В нашия пример ще дефинираме променлива Int32, наречена num. След това ще присвоим стойност Integer на променливата и ще я покажем съответно.

Целочислени типове данни в 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

Двойният тип данни се използва за работа с десетични знаци. В този случай числата са цели числа като 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. Двойният тип данни е посочен за деклариране на двоен тип променлив наречен бр. След това на променливата се присвоява стойност 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. Булевият тип данни е определен за деклариране на булева променлива, наречена „статус“. След това на променливата се присвоява стойност 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 е указан за деклариране на низова променлива, наречена съобщение. След това на променливата се присвоява стойност „Здравей“.
  2. И накрая, функцията console.write се използва за показване на стойността на низа в конзолата.

Ако горният код е въведен правилно и програмата е изпълнена успешно, изходът ще се покаже.

Изход:

Низови типове данни в C#

От изхода можете ясно да видите, че променливата String, наречена съобщение, е показана в конзолата

Пълен списък с типове данни в C#

Четирите примера по-горе обхващат най-често срещаните типове, но C# предоставя пълен набор от вградени типове данни за стойности. Всеки тип резервира фиксирано количество памет и приема специфичен диапазон от стойности, така че изборът на най-малкия тип, който безопасно се вписва в данните ви, поддържа програмата ефективна.

Тип данни Размер Обхват / Descriptйон
байт 1 байт 0 да 255
къс 2 байта -32,768 към 32,767
int (Int32) 4 байта -2,147,483,648 към 2,147,483,647
дълго 8 байта Много големи цели числа (±9.2 квинтилиона)
поплавък 4 байта Десетични дроби с точност до приблизително 6–7 цифри
удвои 8 байта Десетични дроби с точност до приблизително 15–16 цифри
десетичен 16 байта Десетични дроби с висока точност (28–29 цифри) за пари
овъглявам 2 байта Един Unicode символ
булев 1 байт истина или лъжа

Наред с тези типове стойности, типът низ е най-широко използваният референтен тип и съхранява поредица от символи с произволна дължина. Изборът на подходящ тип предотвратява грешки от препълване и ненужно използване на паметта.

Типове стойности срещу типове референтни данни в C#

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

  • Видове стойности: Те съхраняват действителните данни директно, обикновено в стека. int, double, bool, char, преброяване, и struct са типове стойности. Присвояването на една променлива на друга копира стойността, така че двете променливи остават независими.
  • Видове референции: Те съхраняват препратка (адрес в паметта), която сочи към данни в heap-а. String, object, arrays и class instances са референтни типове. Копирането на референтна променлива копира само адреса, така че и двете променливи споделят един и същ обект.

Променлива от тип стойност никога не може да бъде null, защото винаги съдържа стойност, докато неинициализиран референтен тип по подразбиране е null. Разбирането на тази разлика ви помага да предвидите как промените в данните протичат през програмата.

Преобразуване на типове в C#

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

  • Имплицитно преобразуване: Компилаторът конвертира автоматично, когато няма риск от загуба на данни, например при присвояване на цяло число (int) на двойно число (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 прави основния тип на рамката явен.

Типът string е референтен тип, защото съхранява препратка към символни данни, съхранявани в heap-а. Въпреки това, той се държи като стойностен тип по един начин: низовете са непроменяеми, така че всяка промяна създава нов обект тип string, вместо да редактира стария.

Типът, който може да бъде нулиран, позволява на тип стойност като 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# приложения.

Обобщете тази публикация с: