Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VSRPP.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
181.63 Кб
Скачать
  1. Система типов clr и языка c#. Преобразование типов

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

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

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

  • Явные преобразования (приведения). Для явных преобразований необходим оператор приведения. Приведение требуется, когда при преобразовании может быть потеряна информация, или когда преобразование может завершиться неудачей по другим причинам. К типичным примерам относится числовое преобразование в тип, который имеет меньшую точность или меньший диапазон значений, а также преобразование экземпляра базового класса в производный класс.

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

  • Преобразования с помощью вспомогательных классов. Для преобразования между несовместимыми типами, например целые числа и объектыSystem.DateTime, или шестнадцатеричные строки и байтовые массивы, можно использовать класс System.BitConverter, класс System.Convert и методы Parseвстроенных числовых типов, таких как Int32.Parse.

  1. Идентификаторы, ключевые слова и литералы в языке c#

Идентификатор – это пользовательское имя для переменной, константы, метода или типа. В C# идентификатор – это произвольная последовательность букв, цифр и символов подчеркивания, начинающаяся с буквы, символа подчеркивания, либо символа @. Идентификатор должен быть уникальным внутри области видимости. Он не может совпадать с ключевым словом языка, за исключением того случая, когда используется специальный префикс @ (не являющийся частью идентификатора). Примеры допустимых идентификаторов: Temp, _variable, _, @class (используется префикс @, так как class – ключевое слово).

Ключевые слова ‑ это предварительно определенные зарезервированные идентификаторы, имеющие специальные значения для компилятора. Их нельзя использовать в программе в качестве идентификаторов. Далее приведены два списка ключевых слов. В первом списке перечислены ключевые слова, являющиеся зарезервированными идентификаторами в любой части программы C#:

do

in

protected

true

double

int

public

try

else

interface

typeof

break

byte

case

catch

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

add

global

dynamic

group

from

into

get

join

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

7. Выражения и операции в языке C#

Любое выражение в языке C# состоит из операндов и операций. Следующий список содержит допустимые операции. Они разбиты на группы. Порядок групп соответствует приоритету операций (операции в каждой группе имеют одинаковый приоритет, за исключением группы логических операций, где они расположены в порядке убывания приоритета).

  1. Основные (первичные) операции

x.m Доступ к элементу типа

x(...) Вызов методов и делегатов

x[...] Доступ к элементу массива или индексатора

x++ Постинкремент

x-- Постдекремент

new T(...) Создание объекта или делегата типа T

new T[...] Создание массива с элементами типа T

typeof(T) Получение для типа T объекта System.Type

checked(x) Вычисление в контролируемом контексте

  1. Унарные операции

+x Идентичность

-x Отрицание

!x Логическое отрицание

~x Битовое отрицание

true(x) Возвращает логическое значение true для операнда

false(x) Возвращает логическое значение false для операнда

  1. Мультипликативные операции

x * y Умножение

x / y Деление

x % y Вычисление остатка

  1. Аддитивные операции

x + y Сложение чисел или конкатенация строк

x – y Вычитание

  1. Операции сдвига

x << y Битовый сдвиг влево

x >> y Битовый сдвиг вправо

  1. Операции отношения x < y Меньше

x > y Больше

x <= y Меньше или равно

x >= y Больше или равно

  1. Операции равенства

x == y Равно

x != y Не равно

  1. Операции присваивания

x = y Присваивание

x op= y Составное присваивание, поддерживаются операции

*= /= %= += -= <<= >>= &= ^= |=

8. Классы. Допустимые элементы класса

Класс является основным пользовательским типом. Синтаксис объявления класса в C# следующий:

<модификаторы> class <имя класса>

{

[<элементы класса>]

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]