1. Что такое явное/неявное преобразование типов? Приведите пример. явное когда мы указываем компилятору какой тип данных ждать: int x = (int)11; Неявное когда компилятор ожидает один тип данных а приходит другой: byte x = 10; int y = b; 2. Как можно передавать параметры методу в С#? Модификаторы параметров. по ссылке: ref; по значению: просто без приставок передаем переменную так же есть входные и выходные: out и in 3. принципы ООП 4. Сколько раз в этом цикле будет выполняться строка j = j – 1? Ответ: один раз за цикл 5. myStack.Pop() должен возвращать элемент, а не только затирать 6. The protected internal keyword combination is a member access modifier. A protected internal member is accessible from the current assembly or from types that are derived from the containing class. protected internal: совмещает функционал двух модификаторов. Классы и члены класса с таким модификатором доступны из текущей сборки и из производных классов. private protected - доступен из любого места текущем классе или в производных классах текущей сборки. 7. Как можно передавать параметры методу в С#? Модификаторы параметров. 8. Абстрактный класс – это класс, в котором объявлен хотя бы один абстрактный элемент (метод, свойство). 9. множественное наследование в C# 10. Перечислите основные концепции ООП. Коротко опишите, что они означают. Принцип единственной ответственности: у каждого класса должно быть определено единственное значение. Принцип открытости/закрытости: программные сущности должны быть открыты для расширения и закрыты для изменений. Принцип подстановки Барбары Лисков: методы, использующие некий тип, должны иметь возможность использовать его подтипы, не зная об этом. Принцип разделения интерфейса: предпочтительнее использовать интерфейсы более мелкие тематические, чтобы реализующие их классы не были вынуждены определять методы, которые в них не используются. Принцип инверсии зависимости: система конструируется на основе абстракций, абстракции не зависят от деталей, но детали зависят от абстракций. 11. public string Revers(string str) { char[] str2 = new char[str.Length]; for (int i = 0, j = 0; j < str2.Length; i--, j++) str2[j] = str[i]; return new string(str2); } 12.оператор & -- побитовое логическое “и” (пример: uint a =…; uint b=…; uint c = a & b;). Оператор && -- логическое “и”, работающее с типами, а не с их битовыми представлениями (пример: if ( a==5 && b<7){…} ) 13. int a = 1; Byte b = a – неявное преобразование. int a = 1; Byte b = (int)a – явное преобразование. 14. Явное преобразование типов int a = 1; - явно говоришь, что переменной а присвоено значение 1 15. Класс является наследником объекта, так что у них есть схожие свойства. Класс описывает некоторые переменные объекта и описывает его поведение. В классах могут создаваться конструкторы. В классе создаются объекты.