Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 1446 / 158 | Оценка: 4.31 / 4.00 | Длительность: 25:42:00
Лекция 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. Ввожу код на сайте, пишет:

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

 

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