Типы данных в C#: Double, целое число, число с плавающей запятой, символ

⚡ Умное резюме

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

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

Типы данных в C#

Что такое типы данных в C#?

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

1) Целое число

Типы данных 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 указан для объявления целочисленной переменной с именем num. Затем переменной присваивается значение 30.
  2. Наконец, функция console.write используется для отображения числа на консоли.

Если приведенный выше код введен правильно и программа выполнена успешно, будет отображен следующий вывод.

Выход:

Целочисленные типы данных в C#

Из вывода вы можете ясно видеть, что целочисленная переменная с именем num отображалась в консоли.

2) Double

Тип данных double используется для работы с десятичными дробями. В данном случае числа представляют собой целые числа, например 10.11, 20.22 или 30.33. В C# тип данных обозначается ключевым словом «Double«. Ниже приведен пример этого типа данных.

В нашем примере мы определим переменную double с именем num. Затем мы присвоим ей 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. Логический тип данных указан для объявления логической переменной с именем «статус». Затем переменной присваивается значение true/false.
  2. Наконец, функция console.write используется для отображения логического значения на консоли.

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

Выход:

Логические типы данных в C#

Из вывода вы можете ясно видеть, что логическая переменная, равная true, отображалась в консоли.

4) Строка

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

В нашем примере мы определим строковую переменную с именем «сообщение». Затем мы присвоим переменной строковое значение и отобразим его соответствующим образом.

Строковые типы данных в 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. Затем переменной присваивается значение «Hello».
  2. Наконец, функция console.write используется для отображения строкового значения на консоли.

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

Выход:

Строковые типы данных в C#

Из вывода вы можете ясно видеть, что строковая переменная с именем message отображалась в консоли.

Полный список типов данных 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 байт Один символ Юникода
BOOL 1 байт правда или ложь

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

Типы значений против ссылочных типов в C#

Каждый тип данных в C# относится к одной из двух групп: типы значений и ссылочные типы. Это различие определяет, как C# хранит данные и как ведет себя переменная при ее копировании или передаче в метод.

  • Типы значений: Эти типы данных хранят сами данные напрямую, обычно в стеке. int, double, bool, char, перечисление, и struct являются типами значений. Присваивание одной переменной другой копирует значение, поэтому две переменные остаются независимыми.
  • Типы ссылок: Эти типы хранят ссылку (адрес в памяти), указывающую на данные в куче. Строки, объекты, массивы и экземпляры классов являются ссылочными типами. Копирование ссылочной переменной копирует только адрес, поэтому обе переменные используют один и тот же объект.

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

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

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

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

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

Часто задаваемые вопросы (FAQ)

Числа 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?. Это полезно для необязательных данных и полей баз данных, где пропущенное значение должно быть представлено однозначно, в отличие от нуля или false.

Тип данных char содержит ровно один символ Unicode и использует одинарные кавычки, например, 'A'. Тип данных string содержит последовательность из нуля или более символов и использует двойные кавычки. char — это тип значения, а string — ссылочный тип.

Параметр `var` определяет тип переменной во время компиляции, и этот тип затем фиксируется с полной поддержкой IntelliSense. Параметр `dynamic` откладывает проверку типа до времени выполнения, поэтому ошибки типов проявляются только во время выполнения. Используйте `var` для безопасности, а `dynamic` — для гибких сценариев с поздним определением типа.

Да. GitHub Copilot предлагает объявления типов, преобразования и шаблонный код внутри Visual Studio. Visual Studio CodeОна может порекомендовать подходящий числовой тип или сгенерировать код для анализа, но вам следует проверить ее вывод, поскольку в предложенных вариантах могут быть упущены проблемы с точностью или переполнением.

Да. ML.NET сопоставляет типы данных C# с характеристиками модели, используя числовые типы, такие как float и double, для обучающих данных и string для текста. Строго типизированные классы данных описывают каждый столбец, поэтому модели машинного обучения естественным образом интегрируются в приложения C#.

Подведем итог этой публикации следующим образом: