Конструкторы в Си-шарп. Указатель this
Конструктор – это метод класса, предназначенный для инициализации объекта при его создании. Инициализация – это задание начальных параметров объектов/переменных при их создании.
Конструкторы в Си-шарп. Указатель this
Конструктор класса В C#
Перечисление (enum)
Наследование от класса abstract В C#. Используем abstract и override для методов класса
Наследование класса от класса в C#. Используем слова virtual, override, sealed для методов класса
Что такое абстрактный класс В C# ?
Чем они отличаются между собой и в чём отличия?
В плане синтаксиса, интерфейс может содержать внутри себя только методы без реализации, свойства, события.
В то время как абстрактный класс поддерживает функционал любого другого класса (поля, реализованные методы, делегаты, события, свойства, конструкторы...), но запрещает создавать экземпляры своего типа.
Также нужно помнить, что C# не поддерживает множественное наследование и, соответственно, унаследоваться от нескольких классов не получиться, а вот от нескольких интерфейсов - да.

В данной статье мы расскажем, что такое потоки в C#, приоритеты потоков и их типы, покажем, как работать с потоками и как ими управлять, создадим несколько наглядных примеров, объясняющих их работу.
Оглавление:
Что такое потоки в C#
Реализация потоков в C#
– Как создавать потоки в C#
– Как запускать потоки в C#
– Как приостановить потоки в C#
– Приоритеты потоков в C#
– Изменение типов потоков в C#
Примеры работы потоков в C#
– Программа №1: как работают потоки в C#
– Программа №2: приоритеты потоков в C#
– Программа №3: типы потоков в C#
После создания сайта — по мере продвижения, увеличения посещаемости, наполнения контентом — важно следить за такими показателями, как время безотказной работы, скорость загрузки страниц и др.
Компания TeamViewer (одна из участников подборки) провела исследование по теме и выяснила: 40 % пользователей отказываются от посещения сайта, если он загружается дольше 3 секунд.
Доброго времени суток! В этой статье я расскажу об использовании анонимных методов и лямбда-выражений в связке с делегатами.
Чтобы лишь программиста C# необходимости для каждого случая создавать собственные делегаты в библиотеке классов NET.Framework определены и реализованы несколько типов.
Самые распространенные из них - Action <T>, Predicate <T>, Func <T>.
Символ Т в имени делегата означает его обобщенную форму, маскирует собой любой тип, переданный делегату.
Для полноты, вот (надеюсь, полный) список вариантов, когда вам придётся объявлять делегат:
ref, out или params.delegate D D(D d)). Как ни странно, такие штуки иногда нужны.Action/Func называются arg1, arg2 и т. д.).Передача параметров в метод по ссылке. Операторы ref и out
Ctrl + F5 запуск приложения без отладки
Содержание:
Ну, есть ключевое слово delegate — это описание сигнатуры функции, т. е., её списка параметров и типа возвращаемого значения. Используется так:
public delegate bool MyPredicate(int x);
Им можно пользоваться так:
private bool IsOdd(int i) { return i % 2 != 0; }
private Analyze(MyPredicate p, int x)
{
bool result = p(x);
if (result)
Console.WriteLine("found!");
}
Analyze(IsOdd, 1); // печатает "found!"
С другой стороны, есть готовые, предопределённые сигнатуры функций (Func<TArg1, TArg2, ..., TResult> с возвращаемым значением, Action<TArg1, Targ2, ...> без).
То есть, можно не определять делегат самому, а воспользоваться готовыми Func и Action.
Аналогичный пример:
private bool IsOdd(int i) { return i % 2 != 0; }
private Analyze(Func<int, bool> p, int x)
{
bool result = p(x);
if (result)
Console.WriteLine("found!");
}
Analyze(IsOdd, 1); // печатает "found!"Если для вашей сигнатуры подходит Func или Action, особого смысла определять свой делегат нет.
Или есть, если вы хотите дать своему делегату более подходящее имя, чем просто Func, и хотите подчеркнуть его семантику.
Существуют случаи, когда свой делегат всё же необходимо объявлять. Например, наличие out- и ref-параметров:
public delegate Updater(ref int x); // невозможно выразить через Func
Последнее обновление: 1.11.2015 Одним из наиболее часто используемых паттернов при работе с данными является паттерн 'Репозито...