Содержание
- 2. Подпрограммы Подпрограмма (функция) представляет собой законченный фрагмент кода, к которому можно обратиться по имени. Она описывается
- 3. Подпрограммы Преимущества подпрограмм (функций): - содержат многократно используемый код. - делают код более читабельным, поскольку могут
- 4. Подпрограммы Функции (подпрограммы), определенные в классе, называются методами. В C# определить подпрограмму вне класса нельзя, поэтому
- 5. Модификаторы static делает метод доступным только через класс, в котором он определяется, но не через экземпляры
- 6. Модификаторы virtual (виртуальный) — метод может переопределяться. abstract (абстрактный) — метод должен обязательно переопределяться в не
- 7. Методы
- 8. Методы Определение метода в консольном приложении: static (){ return ; } public void MyMeth() { //
- 9. Методы Если член класса объявляется как static, то он становится доступным до создания любых объектов своего
- 10. Методы Ограничения на применение методов типа static: • В методе типа static должна отсутствовать ссылка this,
- 11. Пример 1 namespace ConsoleAppFunc{ /* в пространстве имен нельзя размещать переменные и подпрограммы, но можно пользовательские
- 12. Пример 1 class Program { static void Method1() { Console.WriteLine("Method1"); } void Method2() { // не
- 13. Пример 1 static void Main(string[] args) { // вызов статических методов и переменных Pr.Val = 1;
- 14. Пример 1 p.Method2(); Console.Write("Введите целое число - "); int j = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(j + " /
- 15. Параметры методов Параметры используются для обмена информацией с методом. Параметры, описываемые в заголовке метода, определяют множество
- 16. Параметры методов Правила соответствия формальных и фактических параметров: главное требование при передаче параметров состоит в том,
- 17. Параметры методов int y = 3; double x = 0.9; double S = Sum(y, x); Console.WriteLine(S);
- 18. Параметры методов Существуют два способа передачи параметров: по значению и по ссылке. При передаче по значению
- 19. Параметры методов При передаче по ссылке (по адресу) метод получает копии адресов аргументов, он осуществляет доступ
- 20. Пример 2 using System; class Test { public int a, b; public Test() { } public
- 21. Пример 2 /* Этот метод не оказывает никакого влияния на аргументы, используемые для его вызова. */
- 22. Пример 2 class CallByValue { static void Main() { Test ob = new Test(); int a
- 23. Параметры методов Модификатор параметра ref принудительно организует вызов по ссылке, а не по значению. Этот модификатор
- 24. Пример 3 class RefTest { public void Sqr(ref int i, int j) { // Метод изменяет
- 25. Пример 3 class RefDemo { static void Main() { RefTest ob = new RefTest (); int
- 26. Параметры методов Модификатор параметра out подобен модификатору ref, за одним исключением: он служит только для передачи
- 27. Пример 4 class Decompose { public int GetParts(double n, out double frac){ int whole; whole =
- 28. Пример 4 class UseOut { static void Main() { Decompose ob = new Decompose(); int i;
- 29. Параметры методов Применение модификаторов ref и out не ограничивается только передачей значений обычных типов. С их
- 30. Пример 5 class RefSwap { int a, b; public RefSwap(int i, int j) { a =
- 31. Пример 5 // Этот метод изменяет свои аргументы public void Swap(ref RefSwap ob1, ref RefSwap ob2)
- 32. Пример 5 class RefSwapDemo { static void Main() { RefSwap x = new RefSwap(1, 2); RefSwap
- 33. Пример 5 // Смена объектов, на которые // ссылаются аргументы х и у. х.Swap(ref x, ref
- 34. Параметры методов Ссылка может использоваться как результат функции. Для возвращения из функции ссылки в сигнатуре функции
- 35. Пример 6 static void Main(string[] args){ int[] numbers = { 1, 2, 3, 4, 5, 6,
- 36. Пример 6 static ref int Find(int number, int[] numbers){ for (int i = 0; i if
- 37. Параметры методов C# позволяет использовать необязательные параметры. Для таких параметров необходимо объявить значение по умолчанию. Псле
- 38. Пример 7 static int OptionalParam(int x, int y, int z=5, int s=4){ return x + y
- 39. Параметры методов Язык С# позволяет указывать один (и только один последний в списке параметров) специальный параметр
- 40. Пример 8 static void Addition(params int[] integers){ // передача параметра с params int result = 0;
- 41. Пример 8 static void AdditionMas(int[] integers, int k){ // передача массива int result = 0; for
- 42. Пример 8 static void Main(string[] args){ Addition(1, 2, 3, 4, 5); int[] array = new int[]
- 43. Область видимости (контекст) переменных Каждая переменная доступна в рамках определенного контекста или области видимость. Вне этого
- 44. Пример 9 class Program{ // начало контекста класса static int a = 9; // переменная уровня
- 45. Пример 9 static void Display(){ // начало метода Display int a = 5; // локальная переменная
- 46. Организация закрытого и открытого доступа - Члены, используемые только в классе, должны быть закрытыми. - Данные
- 47. Организация закрытого и открытого доступа - Если изменение члена приводит к последствиям, распространяющимся за пределы области
- 48. Организация закрытого и открытого доступа - Члены, способные нанести вред объекту, если они используются неправильно, должны
- 49. Организация закрытого и открытого доступа - Методы, получающие и устанавливающие значения закрытых данных, должны быть открытыми.
- 50. Пример 10 class MyClass { private int alpha; // закрытый доступ, // указываемый явно int beta;
- 51. Пример 10 public void SetBeta(int a) {// открытый доступ beta = a; } public int GetBeta()
- 52. Пример 10 class AccessDemo { static void Main() { MyClass ob = new MyClass(); // Доступ
- 53. Пример 10 // Следующие виды доступа к членам alpha // и beta данного класса не разрешаются.
- 54. Свойства [ атрибуты ] [ спецификаторы ] тип имя_свойства{ [ get код_доступа ] [ set код_доступа
- 55. Свойства В блоках get должно обязательно присутствовать возвращаемое значение типа свойства, т. е. он должен содержать
- 56. Пример 11 public class MyClass { public readonly string Name; private int intVal; public int Val
- 57. Пример 11 public override string ToString() { return "Name: " + Name + "\nVal: " +
- 58. Пример 11 public class Program { static void Main(string [ ] args) { Console.WriteLine("Создание объекта myObj...");
- 59. Пример 11 catch (Exception e) { Console.WriteLine("Сгенерировано {0} исключение.", e.GetType().FullName); Console.WriteLine("Сообщение:\n\"{0}\"", e.Message); } } Console.WriteLine("\n Вывод
- 60. Конструкторы Каждый объект (переменная типа класс) содержит свой экземпляр полей класса. Методы находятся в памяти в
- 61. Конструкторы
- 62. Конструкторы Конструктор - метод класса - предназначен для инициализации объекта. Он вызывается автоматически при создании объекта
- 63. Пример 12 namespace ConsoleApplication1{ class Demo { public Demo( int a, double y ) { //
- 64. Пример 12 class Class1{ static void Main() { // вызов конструктора Demo a = new Demo(
- 65. Пример 13 class Demo { public Demo( int a ) { // конструктор 1 this.a =
- 66. Конструкторы В C# существует возможность описывать статический класс, то есть класс с модификатором static. Экземпляры такого
- 67. Пример 14 namespace ConsoleApplication1{ static class D{ static int a = 200; static double b =
- 68. Пример 14 class Class1{ static void Main(){ D.Print(); } } }
- 69. Деструкторы Система "сборки мусора" в С# освобождает память от лишних объектов автоматически, действуя незаметно и без
- 70. Деструкторы Общая форма деструктора: ~имя_класса() { // код деструктора } В деструкторе можно указать те действия,
- 71. Пример 15 class Destruct { public int x; public Destruct(int i) { // Вызывается при утилизации
- 72. Пример 15 class DestructDemo { static void Main() { int count; Destruct ob = new Destruct
- 73. Виртуальные, переопределяющие и абстрактные методы Если объявление метода экземпляра содержит модификатор virtual, метод является виртуальным методом.
- 74. Виртуальные, переопределяющие и абстрактные методы Вместе с ключевым словом override может также использоваться и ключевое слово
- 75. Виртуальные, переопределяющие и абстрактные методы Абстрактным называется виртуальный метод без реализации. Объявление абстрактного метода осуществляется с
- 76. Пример 16 public abstract class Expression{ public abstract double Evaluate(Hashtable vars); } public class Constant: Expression{
- 77. Пример 16 public class VariableReference: Expression{ string name; public VariableReference(string name) { this.name = name; }
- 78. Пример 16 public class Operation: Expression{ Expression left; char op; Expression right; public Operation(Expression left, char
- 79. Пример 16 public override double Evaluate(Hashtable vars){ double x = left.Evaluate(vars); double y = right.Evaluate(vars); switch
- 80. Пример 16 Четыре приведенных выше класса могут использоваться для моделирования арифметических выражений. Например, с помощью экземпляров
- 81. Пример 16 class Test{ //классы Expression используются для вычисления // выражения x * (y + 2)
- 82. Пример 16 Hashtable vars = new Hashtable(); vars["x"] = 3; vars["y"] = 5; Console.WriteLine(e.Evaluate(vars)); // Вывод
- 83. Контрольные вопросы 1. Перечислите и опишите элементы класса в C#. 2. Опишите способы передачи параметров в
- 85. Скачать презентацию