Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_1-33.docx
Скачиваний:
2
Добавлен:
18.09.2019
Размер:
509 Кб
Скачать
☆

3. Ключові слова const та readonly.

Ключевое слово const указывает на то, что значение поля или локальной переменной является постоянным и не может быть изменено

Ключевое слово readonly — это модификатор, который можно использовать для полей. Если объявление поля содержит модификатор readonly, присвоение значений таким полям может происходить только как часть объявления или в конструкторе в том же классе.

class Program

{

public readonly int a; // не вимагає присвоєння значення при ініціалізації

Program(int a)

{

this.a = a;

}

void Change()

{

// a = 5; ПОМИЛКА!!! ключове слово readonly забороняє зміну значення

}

static void Main(string[] args)

{

const int x = 2; // за замовченням static

// x = 3; ПОМИЛКА!!! ключове слово const забороняє зміну значення

// const int z; ПОМИЛКА!!! ключове слово const вимагає присвоєння значення при ініціалізації

//var.a = 7; ПОМИЛКА ключове слово readonly забороняє зміну значення

____________________________________________________________________________________________________________

4. У чому полягає процес упакування й розпакування?

У паковка-преобразование представляет собой процесс преобразования типа значения в тип object или любой другой тип интерфейса, реализуемый этим типом значения. Когда тип значения упаковывается средой CLR, она создает программу-оболочку значения внутри System.Object и сохраняет ее в управляемой куче. Операция распаковки-преобразования извлекает тип значения из объекта. Упаковка-преобразование является неявной; распаковка-преобразование является явной. Концепция упаковки и распаковки лежит в основе единой системы типов C#, в которой значение любого типа можно рассматривать как объект.

В следующем примере выполнена операция упаковки-преобразования целочисленной переменой i, которая присвоена объекту o.

int i = 123;

// The following line boxes i.

object o = i;

Можно затем выполнить операцию распаковки-преобразования объекта o и назначить его целочисленной переменной i:

o = 123;

i = (int)o; // unboxing

____________________________________________________________________________________________________________

  1. Що відбувається при використанні у виразах операндів різних типів? Наведіть приклади.

При участии в арифметических операциях операндов разных типов, перед выполнением операции осуществляется преобразование типов так, чтобы не было потери точности. Затем осуществляется сама операция.

Типы данных в порядке возрастания точности:

char, short, int, long, float, double.

Пример:

int a, c;

float d, e;

e = d*(c+e); /* c будет преобразовано в float */

a = 'A' + 20; /* 'A' будет преобразовано в int */

____________________________________________________________________________________________________________

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