Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2018, 09:32   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос Как сделать так, что бы не выводилась строка лямбда выражения события?

Помогите, пожалуйста, как сделать так, что бы после:
Код:
ob.Show(2);
Не выводилась ещё одна строка:
Код:
ob.Event += (x) => Console.WriteLine("Ok2. " + x + ".");
Что нужно написать, что бы был такой результат программы:
"Ok. 10.
Ok2. 10.
Ok. 20.
Ok2. 20.
Ok. 80."
Обратите внимание, что строка "Ok2. 80." не выводится! Что бы предотвратить это не помогла строка
Код:
ob.Event -= (x) => Console.WriteLine("Ok2. " + x + ".");
после:
Код:
ob.Show(2);
. Код программы:
Код:
using System;
delegate void De(int x);
class Program
{
    event De Event;

    static void Act()
    {
        Console.WriteLine("Act.");
    }

    void Show(int x)
    {
        if (Event != null)
            Event(x * 10);
    }

    static void Main()
    {
        Program ob = new Program();

        ob.Event += (x) => Console.WriteLine("Ok. " + x + ".");
        ob.Event += (x) => Console.WriteLine("Ok2. " + x + ".");

        ob.Show(1);
        ob.Show(2);
        ob.Event -= (x) => Console.WriteLine("Ok2. " + x + ".");


        ob.Show(8);

        Console.ReadKey(true);
    }
}
Спасибо за помощь!
Мaкс вне форума Ответить с цитированием
Старый 23.07.2018, 12:16   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
var l2 = (x) => Console.WriteLine("Ok2. " + x + ".");
ob.Event += l2;
...
ob.Event -= l2;
pu4koff вне форума Ответить с цитированием
Старый 23.07.2018, 12:43   #3
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Спасибо!
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Как сделать, чтобы выводилась одна строка с ответом после матрицы: Ярослав777 Помощь студентам 12 01.11.2017 19:18
[C#] Как сделать что бы не каждая строка выводилась, а только одно значение weqw121 Помощь студентам 1 20.10.2017 08:26
Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? TEIROP Visual C++ 4 08.11.2015 20:19
События и лямбда-выражения Devdev12 Общие вопросы .NET 2 11.09.2013 14:32
Сделать так, чтобы в DBGrid выводилась таблица Excel Илюха БД в Delphi 10 06.05.2010 15:59