logo
CSharp_Prog_Guide

Разметка цветом и выделение цветным фоном

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

{ }

фигурные скобки

[ ]

квадратные скобки

( )

круглые скобки

1 Создайте консольное приложение с именем MainReturnValTest. Важно, чтобы имя исполняемого файла, указанное во второй строке bat-файла (см. ниже), совпадало с именем приложения.

2 В конец bat-файла (после строки :end) добавьте оператор pause. После этого сохраните этот текст с каким-либо именем и расширением .bat в каталог bin/Debug – туда, где находится файл MainReturnValueTest.exe. Запустите bat-файл (прим. Фомина Г.В.).

3 Можно опустить при первом чтении (прим. Фомина Г.В.).

4 Можно опустить при первом чтении (прим. Фомина Г.В.)

5 Можно опустить при первом чтении (прим. Фомина Г.В.)

6 Можно опустить при первом чтении (прим. Фомина Г.В.)

7 Можно опустить при первом чтении (прим. Фомина Г.В.)

8 Можно опустить при первом чтении (прим. Фомина Г.В.)

9 Можно опустить при первом чтении (прим. Фомина Г.В.)

10 Можно опустить при первом чтении (прим. Фомина Г.В.)

11 Можно опустить при первом чтении (прим. Фомина Г.В.)

12 Можно опустить при первом чтении (прим. Фомина Г.В.)

13 Можно опустить при первом чтении (прим. Фомина Г.В.)

14 Можно опустить при первом чтении (прим. Фомина Г.В.)

15 Можно опустить при первом чтении (прим. Фомина Г.В.)

16 Можно опустить при первом чтении (прим. Фомина Г.В.)

17 Можно опустить при первом чтении (прим. Фомина Г.В.)

18 Можно опустить при первом чтении (прим. Фомина Г.В.)

19 Можно опустить при первом чтении (прим. Фомина Г.В.)

20 Можно опустить при первом чтении (прим. Фомина Г.В.)

21 Можно опустить при первом чтении (прим. Фомина Г.В.)

22 Разделы по лямбда-выражениям можно опустить при первом чтении (прим. Фомина Г.В.)

23 Разделы по операторам преобразования можно опустить при первом чтении (прим. Фомина Г.В.)

24 Можно опустить при первом чтении (прим. Фомина Г.В.)

25 В этом примере ошибка. Оператор MyClass mc2 = mc1 не будет пропущен транслятором. Здесь mc1 и mc2 – два нестатических поля класса Program. Одно из полей (в данном случае mc2) не может быть инициализировано значением другого (mc1). Однако оператор MyClass mc2 = mc1 можно написать внутри любого нестатического метода класса Program. Например, внутри конструктора

Program() { MyClass mc2 = mc1;} (прим. Фомина Г.В.)

26 При первом чтении можно опустить этот раздел (прим. Фомина Г.В.)

27 В первом описании ссылка object1 получает конкретное значение и наполнение. У объекта object1 есть поля со своими инициализированными значениями, т.к. вызван конструктор класса Customer. В описании obect2 объекта нет. Есть только ссылочная переменная object2, содержащая null – «ссылку в никуда» (прим. Фомина Г.В.)

28 Для создания сборки в этом примере сделайте следующее:

29 При первом чтении этот раздел можно опустить (прим. Фомина Г.В.)

30 Создайте новое консольное приложение. Внутрь класса Program поместите трех классов авто, приведенных в примере. Внутрь метода Main поместите код, написанный внутри метода TestCars1 (прим. Фомина Г.В.)

31 В тот же метод Main поместите код из TestCars2 и цикл foreach (прим. Фомина Г.В.)

32 В цикле foreach кода объект vehicle объявлен как объект класса Car. Поэтому вызывается версия метода DescribeCar именно класса Car (прим. Фомина Г.В.).

33 При первом чтении этот раздел можно опустить (прим. Фомина Г.В.)

34 Здесь предполагается, что объект obj описан и инициализирован оператором SimpleMath obj=new SimpleMath(); Этот оператор и вторую часть кода можно поместить внутрь метода Main консольного приложения. При этом описание класса SimpleMath можно поместить внутрь класса Program. Более понятной будет следующая редакция кода

SimpleMath obj = new SimpleMath();

int result = obj.AddTwoNumbers(1, 2);

int res1 = obj.SquareANumber(result);

int res2 = obj.SquareANumber(obj.AddTwoNumbers(1, 2));

Console.WriteLine(res1 == res2);

Console.ReadLine();

(прим. Фомина Г.В.).

35 При первом чтении можно опустить этот раздел (прим. Фомина Г.В.)

36 При первом чтении этот раздел можно опустить (прим. Фомина Г.В.)

37 При первом чтении этот раздел можно опустить (прим. Фомина Г.В.)

38 Компиляцию этого примера не проводить (прим. Фомина Г.В.)

39 При первом чтении этот раздел можно опустить (прим. Фомина Г.В.)

40 При первом чтении разделы, посвященные разделяемым классам и методам, можно опустить (прим. Фомина Г.В.)

41 При первом чтении последующие разделы до раздела «Свойства» можно опустить (прим. Фомина Г.В.)

42 Приведенный пример содержит код с логическим недостатком. Содержимое конструктора не только увеличивает на единицу текущий счетчик числа служащих (поле counter), но и добавляет к нему значение статического поля NumberOffEmployees. Достаточно в дополнение к приведенному коду в методе Main добавить еще один объект (нового служащего), чтобы убедиться в этом. Представляется, что поле NumberOffEmployees является лишним (прим. Фомина Г.В.)

43 См. сноску, касающуюся примера 1. Здесь статическое поле NumberOffEmployees остается неизменным, если явно не задается, а поле counter не является статическим, поэтому обнуляется при конструировании нового объекта (прим. Фомина Г.В.)

44 Этот пример можно опустить при первом прочтении (прим. Фомина Г.В.)

45 Разделы, посвященные указателям, при первом чтении можно опустить (прим. Фомина Г.В.)

46 Результатом будет false и true, т.к. в стеке переменная y получит меньший адрес, чем x. Проверьте (прим. Фомина Г.В.)

47 Более простой вариант. После создания проекта по шаблону Windows Forms Application:

537