Воскресенье, 2025-02-02

Professor VB - примеры на VB.net и C#
Меню сайта
Вход на сайт
Категории раздела
Уроки C# [9]
Главная » Статьи » C# » Уроки C#

C# - Урок 2 - типы данных и переменные

C# - Урок 2 - типы данных и переменные



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

                Типы данных имеют особенное значение в C#, поскольку это строго типизированный язык. Это означает, что все операции подвергаются строгому контролю со стороны компилятора на соответствие типов, причем недопустимые операции не компилируются. Следовательно, строгий контроль типов позволяет исключить ошибки и повысить надежность программ. Для обеспечения контроля типов все переменные, выражения и значения должны принадлежать к определенному типу. Такого понятия, как "бестиповая" переменная, в данном языке программирования вообще не существует. Более того, тип значения определяет те операции, которые разрешается выполнять над ним. Операция, разрешенная для одного типа данных, может оказаться недопустимой для другого.


                В C# имеются две общие категории встроенных типов данных: типы значений и ссылочные типы. Они отличаются по содержимому переменной. Концептуально разница между ними состоит в том, что тип значения (value type) хранит данные непосредственно, в то время как ссылочный тип (reference type) хранит ссылку на значение. (как ярлык и документ)

Целочисленные типы

                В C# определены девять целочисленных типов: char, byte, sbyte, short, ushort, int, uint, long и ulong. Но тип char применяется, главным образом, для представления символов и поэтому рассматривается отдельно. Остальные восемь целочисленных типов предназначены для числовых расчетов. На экране вы видите  диапазон представления чисел и разрядность в битах:

Целочисленные типы C#


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

                Так, если значение нужно сохранить без знака, то для него можно выбрать тип uint, для больших значений со знаком — тип long, а для больших значений без знака — тип ulong.

 

Объявление переменных

   int a; // объявляем переменную a типа int
   a = 5; // записываем в переменную a число 5
   int b, c; // объявить можно сразу несколько переменных через запятую
   bool d; // объявляем переменную d типа bool
   d = true; // записываем в переменную d значение true (истина)
   long e = 10; // при объявлении переменной можно сразу же задавать ей значение, это называется инициализацией
   float f = 5.5f; // чтобы записать число с плавающей точкой типа float, нужно после значения добавлять суффикс f.
   char g = 'g'; // объявление символьной переменой g с ее инициализацией значением символа 'g'

 

                В отличие от бейсика, Язык Си-шарп чувствительный к регистру символов. Переменные max и Max это не одно и то же. Не забывайте этого, чтобы не иметь лишних проблем.

                Имя переменной должно отображать суть данных, которые она отображает. Не стоит называть переменные ни о чем не говорящими именами типа a, b, c.

НИКОГДА не используйте кириллические символы в именах переменных, пользуйтесь или англ словами или транслитом.

 

Пример неявного преобразования типов:


static void Main(string[] args)
{
   int a = 35;
   short b = 10;
   a = b; // неявное преобразование. Так как int большего размера, чем short – утери данных не будет
   b = a; // ошибка компиляции, нельзя тип большего размера неявно преобразовать в тип меньшего размера
}


                При явном преобразовании необходимо непосредственно перед переменной, которую вы хотите преобразовать, указать в скобках тип, к которому приводится переменная.

 

Пример явного преобразования:

static void Main(string[] args)
{
   int a = 35000;
   short b = 10;
   b = (short) a; // в этом случае уже ошибки не будет. Так как максимальное значение типа short 32767, здесь будет утеря данных.
}

 

Константы

                Константа – это переменная, значение которой нельзя изменить. Константы используются для гарантирования того, что данные в этой переменной не изменятся.
Для того, чтобы объявить константу, перед обычным объявлением переменной нужно добавить ключевое слово const:

 

static void Main(string[] args)
{
   const int months = 12; // объявление константы
   months = 13; // ошибка компиляции
}


                При объявлении константы она должна обязательно быть проинициализирована значением.
Константы также делают ваш код более красивым, читаемым.

 

static void Main(string[] args)
{
   const int months = 12;
   const int monthSalary = 1024;
   int yearSalary = monthSalary * months;
}


Гораздо понятнее чем:


static void Main(string[] args)
{
   int yearSalary = 12 * 1024;
}


Ключевое слово var


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

static void Main(string[] args)
{
   var number = 5; // number будет типа int
   var text ="some text"; // text будет типа string
   var number2 = 0.5; // number2 будет типа double
}


                Ключевое слово var следует использовать в первую очередь с LINQ выражениями (при работе с базами данных)

static void Main(string[] args)
{
  var query = from s in bdContext.Students select s;
}

 

Ключевое слово var имеет ограничения по его использованию - var не может быть в качестве:

- поля класса
- аргумента функции
- возвращаемого типа функции
- переменной, которой присваивается null

Нововведение var является достаточно противоречивым среди разработчиков на C#, некоторые используют его где только возможно, другие его избегают (код становится плохо читаемым).

 

Ссылочные типы

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

Пример использования типа string.

static void Main(string[] args)
{
   string hello = "Hello!";
   Console.WriteLine(hello); 
}


                Все массивы являются ссылочными типами, даже если их члены являются типами значений. Массивы являются неявно производными от класса System.Array, но объявляются и используются они с упрощенным синтаксисом, предоставленным C#, как показано в следующем примере:

// Объявление иинициализация массива.
int[] nums = { 1, 2, 3, 4, 5 };

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


Структурные типы данных в Си-шарп хранятся в стеке. Для этих данных зарезервирована область в стеке.

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

Ссылочные типы хранятся в куче. 

Куча — это область динамической памяти, которая выделяется приложению для хранения данных (например объектов). Доступ к данным в куче осуществляется медленнее, чем к стеку. Переменные ссылочных типов хранят ссылки на данные.

К ссылочным типам относятся классы, интерфейсы, делегаты и массивы.

Подробней об этом будет в следующих уроках

 

Видео по теме

 

Урок посвященный переменным в C# подходит к завершению.

 


Категория: Уроки C# | Добавил: ProfessorVB (2015-11-10)
Просмотров: 6940 | Теги: var, стек, константы, си шарп, Типы данных, Int, КУЧА, Урок, C#, переменные | Рейтинг: 5.0/2
Всего комментариев: 0
avatar
Облако тегов
Поиск
Друзья сайта
  • www.youtube.com

  • vk.com/professorvb

  • Партнерка AIR

  • Партнерка VSP Group
  • Поделись с друзьям
    Теги
    Видео Switch массивы уравнения геометрия continue forEach while Обработка событий задать цвет C# math Vb.net xml количество элементов xml поиск значений математика видеоуроки Soft системы Google pirat Proxy tor НОД нок добавление записи в xml поиск Уроки генератор hello world время деструкторы конструкторы дроби калькулятор десятичные дроби решебник сокращение дробей си шарп мнемоника тренажер random количество дней между датами professorvb дата Урок mindgames алгебра многомерные слова словарь Пароль cos SIN база timer рандом Цикл Break DO for RGB условия массив элементов xml редактирование xml создание вирус MenuStrip AntiCenz fri-gate запрещенные сайты база данных Open RichTextBox XML удалить из xml save TopMost анекдот создать XML Классы Тест OpenFileDialog английский развитие иностранные слова DateTimePicker календарь массив перемешивание массива Анаграммы Рифмоплет Сравнение дробей Меморина скорочтение Использование ребусы комплексные числа программа генератор имен
    Copyright ProfessorVB © 2025