Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Не удается присвоить значение члену переменная "in Some", так как это переменная только для чтения https://www.cyberforum.ru/ csharp-beginners/ thread2407312.html
namespace CSrharpApplicationTest { public struct Some { public int x; } public class Program { public static void Method(in Some variable)
C# Контроль ввода исходных данных
Доброго времени суток! Помогите с кодом. Есть приложение на c#. Приложение работает в режиме диалога с пользователем. Пользователь вводит десятичное действительное число (которое записывается в...
C# List.ForEach vs foreach производительность?
Что лучше использовать в плане производительности List.ForEach или foreach(var ... in ...)? C# .net core, перебор идёт из Microsoft.EntityFrameworkCore.DbSet<Infos>.
C# Отсоединение потока от одного события и присоединить к другому событию Здраствуйте как можно сделать такое, у меня есть массив из DispatcherTimer к каждому инедксу привязано событие. Я хочу определённый поток взять отсоединить от текущего события и присоединить этому же... https://www.cyberforum.ru/ csharp-beginners/ thread2407183.html
C# Что значит этот код и как его можно адаптировать в С#? https://www.cyberforum.ru/ csharp-beginners/ thread2407173.html
class Node { public: union { struct { Node *pLeft, *pRight; }; Token tkn; } u; Node() { u.pLeft = u.pRight = NULL; } void Print(int level, const char *ps) {
Убрать из списка классовых объектов те, в которых string_ равно "abcdefgh" C#
Есть класс: class MyClass { string string_; int n; MyClass(string new_string, int new_n) { string_ = new_string; n = new_n;
Найти максимальный элемент очереди за О(1) C#
Как можно найти максимальный элемент очереди на односвязных списках за О(1)? Или можно ли как-то сделать это со стандартными очередями? Максимальное кол-во элементов в очереди известно заранее.
C# Использование объектов DateTime Здравствуйте, уважаемые форумчане. Хочу сделать программу использующую объекты DateTime. Вообщем программа напоминает от предстоящих днях рождений, в виде уведомлений. Подскажите, как можно... https://www.cyberforum.ru/ csharp-beginners/ thread2407148.html
C# Разделение https://www.cyberforum.ru/ csharp-beginners/ thread2407139.html
Есть метод который считывает сообщения из черновика, а затем при появлении кода на сайте отправляет их на указанный мейл. Нужно сделать так, чтобы Подготовка сообщений проходила в одном методе, а...
C# Как считать байты с файла, не открывая его Как считать байты с файла(определенное количество), не открывая его https://www.cyberforum.ru/ csharp-beginners/ thread2407110.html
Эксперт .NET
14697 / 11111 / 2919
Регистрация: 17.09.2011
Сообщений: 18,650
21.02.2019, 10:16 0

Почему для событий нельзя использовать оператор =?

21.02.2019, 10:16. Просмотров 1858. Ответов 10
Метки (Все метки)

Лучший ответ Сообщение было отмечено OwenGlendower как решение

Решение

Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Почему для событий нельзя использовать оператор =?
Потому что событие — это реализация паттерна "Наблюдатель" на уровне языка.
Наблюдаемый класс должен иметь полный контроль над списком наблюдателей, наблюдатели же не должны никак влиять на других наблюдателей.
Если разрешить оператор присваивания, то сторойнний класс может удалить всех остальных наблюдателей, присвоив событию значение null, что нарушает паттерн.
По той же причине событие не может вызвать никто кроме класса, в котором оно объявлено.

Цитата Сообщение от Usaga Посмотреть сообщение
потому, что событие - коллекция делегатов.
Любой делегат — коллекция делегатов.

Вернуться к обсуждению:
Почему для событий нельзя использовать оператор =?
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2019, 10:16
Готовые ответы и решения:

Почему нельзя использовать метод ReadAllLines?
static int FoundConst(string fileAddress, string cs) { ...

Почему нельзя использовать пользовательские преобразования в данных случаях?
class First { public static implicit operator Second(First x) =&gt; new Second(); } class...

Почему если не использовать бинарный оператор, то выдаст ошибку?
Почему если убрать бинарный оператор, то компилятор выдаёт ошибку? public static ThreeD...

В каких случаях нельзя обойтись без событий?
В каких случаях нельзя обойтись без событий, либо это очень сложно ? Для чего их вообще применяют ?...

10
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.