Содержание
- 2. Немного о языке программирования C#
- 3. Немного истории 60-е годы Combined Programming Language (CPL) — совместный язык программирования; Кристофер Стрейчи, Кембриджский и
- 4. Рассмотрим: стандартные типы данных значения и ссылки управляющие структуры параметры функций массивы
- 5. Литература Эндрю Троелсен. Язык программирования C# 2008 и платформа .NET 4.0, 5-е издание
- 6. Интернет Microsoft Developer Network http://http://msdn.ru
- 8. Первая программа using System; class HelloClass { public static void Main(string[] args) { Console.WriteLine("Hello, World!"); }
- 9. варианты: public static void Main() { } public static int Main(string[] args) { return 0; }
- 10. Обработка параметров командной строки using System; class HelloClass { public static void Main(string[] args) { for
- 11. или так: foreach (string s in args) { Console.WriteLine("Arg: {0}", s); }
- 12. Стандартные типы данных
- 16. bool – логический тип true – истина false – ложь Пример: bool f1 = 5 >
- 17. string – строковый тип Пример: string s1 = "Петр"; string s2 = "ГУ"; string s3 =
- 18. Типы: - значения - ссылки
- 19. Типы, характеризуемые значениями, включают все числовые типы данных, символьный тип, булевский тип, перечни и структуры. Все
- 20. Большинство остальных типов являются ссылочными. Ссылочные типы размещаются в динамической памяти. При присваивании копируется ссылка (адрес)
- 21. struct MyStruct { public int x, y; } static void Main() { MyStruct s1, s2; s1.x
- 22. class MyClass { public int x, y; } static void Main() { MyClass c1, c2; c1
- 25. Преобразование строки в число string s = "125"; int n = int.Parse(s); if (int.TryParse(s, out n)
- 26. Управляющие структуры if if … else switch for while do … while foreach
- 27. Немного о массивах в языке программирования C#
- 28. Рассмотрим объявление, создание и инициализацию массивов
- 29. // Объявление int[] A; // и создание A = new int [5];
- 30. // Объявление и создание int[] A = new int [5];
- 31. // Объявление, создание и инициализация int[] A = new int[5] {1, 2, 3, 4, 5}; int[]
- 32. Одномерный массив string t = Console.ReadLine(); int N = int.Parse(t); string[] str = new string [N];
- 33. Двумерный массив int[,] mas = new int [5,7]; for (int i=0; i for (int j=0; j
- 34. Ступенчатый двумерный массив int[][] mas = new int [5][]; for (int i=0; i { mas[i] =
- 35. Параметры функции параметры – значения ссылочные параметры выходные параметры
- 36. Передача по значению int sum(int a, int b) { int s = a + b; a
- 37. Передача по ссылке void swap(ref int a, ref int b) { int c = a; a
- 38. Передача по ссылке выходного параметра void f(int a, int b, out int sum, out int pr)
- 39. Передача множества аргументов в виде одного параметра int sum(params int[] mas) { int s = 0;
- 40. Немного о Microsoft Visual Studio.NET
- 41. Недостатки других подходов Недостаток C – трудоемкий язык. Недостаток C++ – трудоемкий язык, небезопасный. Недостаток Visual
- 42. Преимущества модели .NET Полное межъязыковое взаимодействие. Общая среда для любых приложений. Наличие библиотеки базовых классов. Упрощение
- 43. .NET – это среда выполнения и библиотека базовых классов.
- 44. Блоки .NET CLR – Common Language Runtime, стандартная среда выполнения. CTS – Common Type System, стандартная
- 45. а так же: MSIL, IL – Microsoft intermediate language, промежуточный язык Microsoft. JIT – just in
- 46. Управляемый код – это код (программа), предназначенный для работы в середе .NET. Сборка – двоичный файл,
- 47. Преимущества C#: Нет необходимости в указателях. Управление памятью производится автоматически. Возможность работы с перечислениями, структурами и
- 48. Объектно-ориентированное программирование, классы
- 49. Принципы ООП: инкапсуляция наследование полиморфизм Инкапсуляция – объединение данных и методов в независимые целостные объекты. Наследование
- 50. Класс – пользовательский тип данных, содержащий члены класса (данные, называемые полями и функции, называемые методами). Могут
- 51. Описание класса: [ ] class [: ] { }
- 52. Некоторые модификаторы класса: abstract – класс является только базовым для других классов sealed – класс не
- 53. Некоторые модификаторы класса: public – класс доступен вне пределов сборки internal - класс доступен только в
- 54. Некоторые члены класса: константа поле метод конструктор свойство индексатор событие тип (класс, структура, перечисление)
- 55. Члены класса: константа поле метод свойство событие индексатор конструктор деструктор статический конструктор тип
- 56. Для доступа к членам класса используется точка. Примеры: label1.Text // Класс Студент и объекты класса: Student
- 57. Описание константы: [ ] const [= ] Пример описания константы: const double Pi = 3.1416;
- 58. Описание поля: [ ] [= ] Некоторые модификаторы полей: new – замещение поля public – доступно
- 59. Описание метода: [ ] ( ) { } Некоторые модификаторы методов: public – доступен вне класса
- 60. Конструктор – это метод, вызываемый при создании объекта. Имя конструктора совпадает с именем класса. Класс может
- 61. class Student { public string name; public int num; public Student() { name = “Noname”; num
- 62. class Program { static void Main() { Student s = new Student(); s.print(); s.name = "Иванов";
- 63. int GCD(int a, int b) { int c; while (b > 0) { c = a
- 64. int GCD(int a, int b) { // два параметра – a и b int c; //
- 65. int GCD(int a, int b) { // вычисление наибольшего общего делителя int c; // чисел a
- 66. class Student { private string name; private readonly int num; private static int N; public Student(string
- 67. class Program { static void Main() { Student s1 = new Student("Иванов"); s1.print(); Student s2 =
- 68. Доступ к статическим членам осуществляется через имя класса, к нестатическим членам – через имя объекта. class
- 69. Конструктор с модификатором static используется для инициализации статических членов класса. В этом случае нельзя указывать модификаторы
- 70. Конструктор с модификатором private используется в том случае, когда нужно запретить создание объектов класса. class Table
- 71. Наследование. Полиморфизм. Перегрузка методов базового класса.
- 72. abstract class Component { protected double h; public void set_h(double x) { if (x > 0
- 73. class Cylinder : Component { private double r; public void set_r(double y) { if (y >
- 74. class Prism : Component { private double a; public void set_a(double z) { if (z >
- 75. class Program { static void Main() { Cylinder cyl = new Cylinder(); cyl.set_r(5.1); cyl.set_h(3.5); Prism pr
- 76. Интерфейсы
- 77. Интерфейс – это ссылочный тип, в состав которого входят только абстрактные члены. Члены интерфейса: методы; события;
- 78. Интерфейс содержит только объявления членов, их реализация должна находится в классе, реализующем интерфейс. Объявление интерфейса: [
- 79. Если класс реализует некоторый интерфейс, то имя интерфейса указывается после имени класса и двоеточия: class :
- 80. Класс может реализовывать несколько интерфейсов: class : [ ,] , Тем самым имитируется множественное наследование. Примечание:
- 81. Интерфейсы сходны с абстрактными классами и отличаются от них тем, что поддерживают: множественное наследование; содержат ограниченный
- 82. Пример: public interface MyInterface { void Method1(); void Method2(); } class MyClass : MyInterface { public
- 83. Под явной реализацией члена интерфейса понимается объявление с использованием полного имени члена интерфейса: . (аргументы) В
- 84. Оператор as можно использовать для получения интерфейсной ссылки. Оператор is можно использовать для проверки того, реализует
- 85. В производных классах можно использовать интерфейс, реализованный в базовом классе. Абстрактные классы могут реализовывать интерфейсы. При
- 86. public interface Description { void Name(); } class Student : Description { string str; public Student(string
- 87. class Car : Description { string str; public Car(string s) { str = s; } void
- 88. static void Main() { Student st = new Student("Иванов"); Print (st); Car car = new Car("Тойота");
- 89. Свойства
- 90. Свойства внешне выглядят как поля, используются для чтения и/или записи, однако фактически при обращении к ним
- 91. class Book { private int Npage = 0; public int NPage { get { return Npage;
- 92. class Program { static void Main() { Book b = new Book(); b.NPage = 1000; Console.WriteLine(b.NPage.ToString());
- 93. Индексаторы
- 94. Индексаторы позволяют работать с элементами классов как с массивами, то есть использовать квадратные скобки [ ]
- 95. class Book { private string[] title = { "Война и мир", "Отцы и дети", "Дубровский" };
- 96. set { for (int i=0; i if (str == title[i]) price[i] = value; } } }
- 97. Делегаты Делегат – это тип данных, содержащий информацию о типе возвращаемого значения и сигнатуре (списке формальных
- 98. Объявление делегата [ ] delegate ( ) Модификаторы: new public protected private Пример: public delegate void
- 99. Инициализация делегата Под инициализацией делегата понимается создание экземпляра делегата и установление привязки к методу. Тип возвращаемого
- 100. Инициализация делегата статическим методом public delegate void StDel (Student s); class Group { public static void
- 101. Инициализация делегата методом экземпляра public delegate void StDel (Student s); class Group { public void PrintName(Student
- 102. Вызов делегата Делегат вызывается с помощью указания его имени, за которым в скобках записаны передаваемые параметры.
- 103. class Student { public string Name; public int Number; public Student(string Name, int Number) { this.Name=Name;
- 104. class Group { private ArrayList Gr = new ArrayList(); public Group() { Gr.Add(new Student("Иванов",1)); Gr.Add(new Student("Петров",2));
- 105. class App { public static void PrintName(Student s) { Console.WriteLine(s.Name); } public static void PrintNumber(Student s)
- 106. Делегаты позволяют упростить процесс вызова методов классов из других классов. Делегаты используются для реализации «обратного вызова»
- 107. Обработка событий События – механизм, с помощью которого класс может посылать уведомления об определенных событиях различным
- 108. Обработка щелчка мышкой по кнопке обработчик события: private void button1_Click(object sender, EventArgs e) { label1.Text =
- 109. Создание и использование событий: Объявление делегата: public delegate void del(int[] mas); Создание события как экземпляра делегата:
- 110. class Car { private bool good=true; public delegate void CarHandler(string msg); public static event CarHandler Crack;
- 111. public void SpeedUp(int delta) { if (!good) { if (Crack!=null) Crack("Машина вышла из строя!!!"); } else
- 112. class CarEvent { public void OnCrack(string s) { Console.WriteLine("Пришло сообщение: {0}", s); } public void OnCrack2(string
- 113. class App { static void Main() { Car c = new Car(); CarEvent e = new
- 114. class Trans { private static int[] P; public delegate void del(int[] mas); public static event del
- 115. // Рекурсивная реализация перебора private static void Antilex(int m) { if (m == 1) { if
- 116. // Запуск рекурсии public static void DoIt(int n) { P = new int[1 + n]; for
- 117. class Program { static void print(int[] A) { for (int i = 1; i Console.Write("{0} ",
- 118. static void Main() { Trans.use += new Trans.del(print); Trans.use += new Trans.del(plus); Trans.DoIt(5); Console.WriteLine(count); Console.ReadKey(); Trans.use
- 119. Обработка исключений string str = Console.ReadLine(); int a; try { a = int.Parse(str); } catch (Exception
- 120. Пример записи в текстовый файл и чтения из текстового файла using System.IO; class Program { static
- 121. int[,] A = new int[m, n]; for (int i = 2; i { int j =
- 122. Спроектируйте класс, содержащий информацию о студенте. Класс должен содержать закрытые поля: номер зачетной книжки (целое число)
- 124. Скачать презентацию