Опубликован: 25.03.2010 | Уровень: для всех | Доступ: платный
Лекция 4:

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

Аннотация: В данной лекции описываются типы данных C# и практическое их применение в приложениях.

Литералы

Литералами называются константы, содержащие явное значение соответствующего элементарного типа, не обозначенное идентификатором. Это могут быть:

  • Целые знаковые числа (11 - int )
  • Целые беззнаковые числа (11u, 11U - uint )
  • Целые длинные
  • Вещественные числа с плавающей точкой одинарной точности (11.0f, 11.0F - float )
  • Вещественные числа с плавающей точкой удвоенной точности (11.0d, 11.0D - double )
  • Денежные вещественные числа (11.0m, 11.0M - decimal ). Длина 16 байт для уменьшения ошибок округления
  • Логические (булевы) константы ( true, True, false, False - bool )
  • Символьные ('a' - char )
  • Строковые ("Привет" - string )
  • Строковые замороженные-буквальные (@"Привет" - string )

По сути, все элементарные типы имеют литералы для явного задания значений

Таблица 4.1 . Элементарные типы данных и их псевдонимы в C#
Псевдоним C# Соответствие CLS Системный тип Диапазон Пояснения
void + Void Пусто Применяется для соблюдения синтаксиса
sbyte - SByte -128 - 127 Знаковое 8 бит
byte + Byte 0 - 255 Беззнаковое 8 бит
short + Int16 -32'768 - 32'767 Знаковое 16 бит
ushort - UInt16 0 - 65'535 Беззнаковое 16 бит
int + Int32 -2'147'483'648 - 2'147'483'647 Знаковое 32 бит (4 байта)
uint - UInt32 0 - 4'294'967'295 Беззнаковое 32 бит
long + Int64 -9'223'372'036'854'775'808 - 9'223'372'036'854'775'807 Знаковое 64 бит (8 байт)
ulong - UInt64 0 - 18'446'774'073'709'551'615 Беззнаковое 64 бит (8 байт)
char + Char U+0000 - U+FFFF Для описания только одного символа Unicode 16 бит
float + Single 1.5x10-45 - 3.4x1038 Знаковое с плавающей точкой 32 бит (4 байта)
double + Double 5.0x10-324 - 1.7x10308 Знаковое с плавающей точкой 64 бит (8 байт)
bool + Boolean true или false Логическое
decimal + Decimal 100 - 1028 Знаковое целое (16 байт)
string + String Ограничено только системной памятью Для описания строки символов Unicode любой длины
object + Object Практически все что угодно. Все типы происходят от System.Object, поэтому объектом является все Класс, базовый для всех типов в . NET

Вот простая программа, характеризующая литералы и элементарные типы

using System;
    
namespace Test
{
    class Program
    {
    static string str;// Инициализируется пустой строкой
    
    static void Main(string[] args)
    {
    // Настройка консоли
    Console.Title = "Литералы и элементарные типы в C#";
    Console.ForegroundColor = ConsoleColor.White;
    Console.CursorVisible = false;
    
    // Печать типов
    Console.WriteLine("Тип(длина) \t{Min}  ~  {Max}"
                + Environment.NewLine);
    str += String.Format("sbyte({0})  \t{1}  ~  {2}\r\n",
                sizeof(sbyte), sbyte.MinValue, sbyte.MaxValue);
    str += String.Format("byte({0})  \t{1}  ~  {2}\r\n",
                sizeof(byte), byte.MinValue, byte.MaxValue);
    str += String.Format("short({0})  \t{1}  ~  {2}\r\n",
                sizeof(short), short.MinValue, short.MaxValue);
    str += String.Format("ushort({0})  \t{1}  ~  {2}\r\n",
                sizeof(ushort), ushort.MinValue, ushort.MaxValue);
    str += String.Format("int({0})  \t{1}  ~  {2}\r\n",
                sizeof(int), int.MinValue, int.MaxValue);
    str += String.Format("uint({0})  \t{1}  ~  {2}\r\n",
                sizeof(uint), uint.MinValue, uint.MaxValue);
    str += String.Format("long({0})  \t{1}  ~  {2}\r\n",
                sizeof(long), long.MinValue, long.MaxValue);
    str += String.Format("ulong({0})  \t{1}  ~  {2}\r\n",
                sizeof(ulong), ulong.MinValue, ulong.MaxValue);
    str += String.Format("char({0})  \t{1:X}  ~  {2:X}\r\n",
                sizeof(char), (int)char.MinValue, (int)char.MaxValue);
    str += String.Format("float({0})  \t{1}  ~  {2}\r\n",
                sizeof(float), float.MinValue, float.MaxValue);
    str += String.Format("double({0})  \t{1}  ~  {2}\r\n",
                sizeof(double), double.MinValue, double.MaxValue);
    str += String.Format("decimal({0})  \t{1}  ~  {2}\r\n",
                sizeof(decimal), decimal.MinValue, decimal.MaxValue);
    
    Console.WriteLine(str);
    
    Console.ReadLine();
    }
    }
}
Листинг 4.1. Характеристики литералов и элементарных типов

Рузультат выполнения будет таким

Максим Филатов
Максим Филатов

Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет:

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

 

Как активировать код?

Денис Пашков
Денис Пашков
Россия
Татьяна Ковалюк
Татьяна Ковалюк
Украина, Киев, Киевский политехнический институт, 1974