- •Гугл-дока для екзамену Архітектура компютера. Програмне забезпечення
- •1. Поняття платформи. Структура та основні складові .Net Framework.
- •2. Функції та структура clr.
- •3. Поняття збірки. Метадані. Схема виконання .Net-додатку в clr.
- •4. Система типів даних мови c#. Типи-значення.
- •5. Система типів даних мови c#. Типи-посилання.
- •6. Масиви в c#: одновимірні, багатовимірні, ступеневі. Методи та властивості класу Array.
- •7. Методи в c#: модифікатори доступу, передача параметрів, перевантаження, наслідування.
- •7. Методи в c#: модифікатори доступу, передача параметрів, перевантаження, наслідування.(Второй вариант)
- •8. Багатопоточне програмування засобами .Net. Структура процесу ос Windows. Клас Thread.
- •9. Характеристика засобів синхронізації потоків та процесів .Net Framework.
- •10. Об’єкти синхронізації потоків .Net Monitor та ReaderWriterLock.
- •11. Об’єкти синхронізації потоків .Net lock та ManualResetEvent.
- •12. Об’єкти синхронізації потоків .Net AutoResetEvent та Mutex.
- •13. Обробка виключних ситуацій в мові c#, основні класи та методи .Net щодо обробки виключень.
- •14. Віртуальні функції та абстрактні класи в мові c#.
- •15. Статичні конструктори, поля та методи класів в мові c#.
- •17. Інтерфейси в мові c#. Порівняння з абстрактними класами. Сфера застосування інтерфейсів.
- •18. Огляд колекцій в .Net. Основні інтерфейси, що лежать в основі доступу до колекцій.
- •19. Колекція ArrayList. Методи та властивості. Переваги та недоліки використання.
- •20. Колекції Stack та Queue. Методи та властивості.
- •21. Колекція BitArray. Методи та властивості. Переваги та недоліки використання.
- •22. Колекція HashTable. Методи та властивості. Переваги та недоліки використання.
- •23. Характеристика generic-колекцій .Net
- •24. Колекція LinkedList. Методи та властивості.
- •26. Групи класів доступу до даних технології ado.Net.
- •27. Характеристика від’єднаних класів технології ado.Net.
- •28. Характеристика під’єднаних класів технології ado.Net.
- •29. Завантаження бінарних об’єктів у базу даних та вивантаження їх із неї.
- •30. Транзакції в базах даних. Інтерфейс транзакцій технології ado.Net.
- •31. Особливості мережевих протоколів tcp та udp. Поняття порту, адреси, сокету.
- •32. Характеристика сокетів зі з’єднанням. Інтерфейс класу Socket для даного типу сокетів.
- •33. Характеристика сокетів без з’єднання. Інтерфейс класу Socket для даного типу сокетів.
- •34. Характеристика асинхронних та синхронних сокетів. Інтерфейс класу Socket для даного типу сокетів.
- •35. Узагальнений алгоритм взаємодії клієнта та сервера при синхронному сокетному способі обміну даними зі з’єднанням. Інтерфейс класу tcpListener.
- •36. Узагальнений алгоритм взаємодії клієнта та сервера при синхронному сокетному способі обміну даними без з’єднання. Інтерфейс класу tcpClient..
- •37. Загальна схема та реалізація багатопоточного сокетного сервера зі з’єднанням.
- •38. Поняття сервіс-орієнтованого архітектури. Web-сервіси: переваги та недоліки, стандарти в основі Web-сервісів.
- •Стандарти, що використовуються веб-службами
- •Переваги веб-служб
- •Недоліки веб-служб
- •39. Компоненти архітектури Web-сервісів. Протоколи для Web-сервісів. Приклад реалізації серверної частини Web-сервісу.
- •Используемые стандарты
7. Методи в c#: модифікатори доступу, передача параметрів, перевантаження, наслідування.
Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода. В C# все инструкции выполняются в контексте метода. Метод Main является точкой входа для каждого приложения C#, и вызывается он средой CLR при запуске программы.(msdn)
Модификаторы доступа:
public: Доступ к типу или члену возможен из любого другого кода в той же сборке или другой сборке, ссылающейся на него.
private: Доступ к типу или члену можно получить только из кода в том же классе или структуре.
protected: Доступ к типу или члену можно получить только из кода в том же классе или структуре, или в производном классе.
internal: Доступ к типу или члену возможен из любого кода в той же сборке, но не из другой сборки.
protected internal: Доступ к типу или члену возможен из любого кода в той же сборке, или из производного класса в другой сборке.
public class Bicycle
{
public void Pedal() { }
}
Передача параметров:
В C# параметры могут быть переданы либо по значению, либо по ссылке. Передача параметров по ссылке позволяет изменять и сохранять измененные значения параметров членов функций, методов, свойств, индексаторов, операторов и конструкторов. Для передачи параметра по ссылке используйте ключевое слово ref или out. Ref и out отличаются тем, что ref требует инициализации переменной перед её отдачей. Эти методы идентичны для компиляции.
// Passing by value
static void Square(int x)
{
// code...
}
// Passing by reference
static void Square(ref int x)
{
// code...
}
Перегрузка:
Перегрузка методов позволяет программистам на С# многократно использовать одни и те же имена методов, меняя лишь передаваемые аргументы. Это применяется, когда нужно иметь единое имя метода, поведение которого немного различается, в зависимости от переданных параметров.
public void WriteEntry(string entry)
{
Console.WriteLine(entry);
}
public void WriteEntry(int resourceld)
{
Console.WriteLine("получить строку no id ресурса и вывести в log")
}
…
WriteEntry("Строка один");
WriteEntry(42) ;
Наследование:
Наследование, вместе с инкапсуляцией и полиморфизмом, является одной из трех основных характеристик (или базовых идей) объектно-ориентированного программирования. Наследование позволяет создавать новые классы, которые повторно используют, расширяют и изменяют поведение, определенное в других классах. Класс, члены которого наследуются, называется базовым классом, а класс, который наследует эти члены, называется производным классом.
7. Методи в c#: модифікатори доступу, передача параметрів, перевантаження, наслідування.(Второй вариант)
Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода. В C# все инструкции выполняются в контексте метода. Метод Main является точкой входа для каждого приложения C#, и вызывается он средой CLR при запуске программы.
Методы объявляются в классе или в структуре путем указания уровня доступа, например public или private, необязательных модификаторов, например abstract или sealed, возвращаемого значения, имени метода и списка параметров этого метода. Все вместе эти элементы образуют сигнатуру метода.
Параметры заключаются в круглые скобки и разделяются запятыми. Пустые скобки указывают на то, что у метода нет параметров.
Вызов метода объекта очень похож на обращение к полю. После имени объекта ставится точка, затем имя метода и скобки. В скобках перечисляются аргументы, разделенные запятыми.
По умолчанию при передаче методу типа значения передается копия объекта, а не сам объект. Поэтому изменения в аргументе не оказывают влияния на исходную копию в вызывающем методе. Тип значения по ссылке можно передать с помощью ключевого слова ref либо out.
Ref ключевое слово указывается в параметре типа значения, если необходимо, чтобы вызванный метод окончательно изменил значение переменных, используемых в качестве параметров. Таким образом, вместо передачи значения переменной, используемой в вызове, передается ссылка на саму переменную. Затем метод использует ссылку, так что изменения параметра во время выполнения метода сохраняются в начальной переменной, используемой в качестве параметра метода.
Действие ключевого слова out аналогично действию ключевого слова ref, а изменения параметра, объявленного при помощи out, будут отображаться вне метода. Два отличия от ref заключаются в том, что любое начальное значение параметра out пропускается в методе, и параметр out должен быть присвоен во время метода.
Существование в классе методов с одним и тем же именем называется перегрузкой, а сами одноименные методы называются перегруженными. Перегрузка методов полезна, когда требуется решать подобные задачи с разным набором аргументов.
Пример - нахождение S треуг. S можно вычислить по трем сторонам, по двум углам и стороне, по двум сторонам и углу между ними и при многих других наборах аргументов. Удобно во всех случаях использовать одно имя, например Square, и всегда, когда нужно вычислить площадь, не задумываясь, вызывать метод Square, передавая ему известные в данный момент аргументы.
Когда базовый класс объявляет метод как виртуальный, производный класс может переопределить метод с помощью своей собственной реализации. Если базовый класс объявляет член как абстрактный, то этот метод должен быть переопределен в любом неабстрактном классе, который прямо наследует от этого класса. Если производный класс сам является абстрактным, то он наследует абстрактные члены, не реализуя их. Абстрактные и виртуальные члены являются основой для полиморфизма, который является второй основной характеристикой объектно-ориентированного программирования.