- •12. Фундаментальные принципы ооп
- •13. Методы
- •14. Конструкторы и деструкторы
- •15. Структуры и перечисления
- •16. Свойства и поля класса
- •18. Анонимные типы
- •20. Расширяющие методы.
- •19. Перегрузка операций в классе. Явное и неявное преобразование типов. Ограничения на преобразование типов.
- •17. Статические поля, методы, конструкторы, классы.
- •2. Типы данных
- •3. Базовые типы
- •Унарные операции Можно определять в классе следующие унарные операции:
- •Бинарные операции
- •5.Выражения (порядок их вычисления, тип результата, оператор присваивания).
- •6.Операторы ветвления (if, switch, case, break , goto case).
- •Оператор break
- •Оператор goto-оператор безусловного перехода. Когда в программе встречается оператор goto, ее выполнение переходит непосредственно к тому месту, на которое указывает этот оператор.
- •7. Операторы цикла (for, while, do-while, foreach, break continue).
- •8. Обработка исключений (операторы обработки исключений, класс Exception, создание объектов Exception, захват исключения, последовательность обработки исключений, классы Debug и Trace)
- •9. Массивы (одномерные, многомерные и ступенчатые массивы, класс Array).
- •Многомерные массивы
- •Ступенчатые массивы
- •10. Создание и подключение сборок. Пространства имен (ключевые слова using, namespace)
- •11. Сложение:
- •14. Структурные блоки платформы .Net: cli, clr, cls, cts.
- •17. Таблица приоритетов операций, соответствующая Common Language Specification (cls)
- •21. Интерфейс программирования приложений WinForms.
- •22. Интерфейс программирования приложений wpf.
- •24.Кодирование символов (ascii, utf, utf-8, utf-16)
- •3.Вопросы по c# часть 1
- •22 Делегаты
- •23 События
- •24 Наследование классов
- •25 Интерфейсы
- •26 Шаблоны и интерфейс iEnumerable
- •27 Динамический тип данных
- •Статический класс Environment.
- •2) Класс DriveInfo.
- •3) Классы для работы с каталогами (папками) (System.Io.Directory, System.Io.DirectoryInfo)
- •9.2.3. Создание подпапок с помощью класса DirectoryInfo
- •9.3. Работа с классом Directory
- •9.4. Работа с классом DriveInfo
- •Классы для работы с файлами (System.Io.File, System.Io.FileInfo).
- •9.1. Абстрактный базовый класс FileSystemInfo
14. Конструкторы и деструкторы
Конструктор
class Motorcycle { public int driverIntensity; public string driverName; public Motorcycle() { } // Избыточная логика конструкторов! public Motorcycle(int intensity) { if (intensity > 10) { intensity = 10; } driverIntensity = intensity; } public Motorcycle(int intensity, string name) { if (intensity > 10) { intensity = 10; } driverIntensity = intensity; driverName = name; } ... }
|
Деструктор используется для освобождения неуправляемых ресурсов: // Override System.Object.Finalize() via finalizer syntax. class MyResourceWrapper { ~MyResourceWrapper() { // Clean up unmanaged resources here. // Beep when destroyed (testing purposes only!) Console.Beep(); } }
|
Конструктор по умолчанию
Конструктор класса без параметров называется конструктором по умолчанию (default constructor)
Конструктор по умолчанию без операторов автоматически создается компилятором в классе (если нет никакого другого конструктора).
Например:
class Student
{ String Name;
int course; }
...
// используем автоматически созданный конструктор
Student st = new Student();
Если в классе описан хотя бы один конструктор, то конструктор по умолчанию автоматически не создается.
class Student
{
String Name;
int course;
public Student(string nm, int crs) {Name=nm; Course=crs;}
}
...
// используем автоматически созданный конструктор, а его уже нет!!!
Student st = new Student(); // ошибка!
15. Структуры и перечисления
Структуры
Структуры и классы очень похожи. Структуры могут реализовывать интерфейсы и включать в свой состав тоже что и классы. Но есть и серьезные отличия. Структуры больше подходят для использования по значению, нежели по указателю. Наследования для структур не поддерживается. Значения структур хранятся в стеке
struct STUDENT
{
public string fio;
public string FormOfEducation;
public int course;
public string faculty;
public STUDENT (string name)
{
this.fio = name;
this.FormOfEducation = "Неопределено";
this.course = 0;
this.faculty = "Неопределено";
}
}
static void Main(string[] args)
{
STUDENT stud = new STUDENT("Нгуен Павел Зунгович");
print(stud);
Console.Read();
}
Перечисления
Перечисления обычно используются для диалогов выбора, в которых общение с пользователем происходит посредствам выбора некоторых опций, выводимых на экран. Пример:
enum Color {
Red,
Blue,
Green
}
class Shape
{
public void Fill(Color color) {
switch(color) {
case Color.Red:
...
break;
case Color.Blue:
...
break;
case Color.Green:
...
break;
default:
break;
}
}
}
демонстрирует перечисление Color и метод его использующий. Использование перечислений делает код более читабельным.
