Skip to content

RU CSharp Keyword remove

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#: remove

Справочник C# · Практическое руководство

Аксесор события, обрабатывающий отписку; value содержит делегат обработчика.

Простой пример (Example.cs)

Сохраните этот пример отдельно как Example.cs. Запускайте его независимо от остальных примеров страницы.

Example.cs:

// PROJECT-EXAMPLE
var source = new Source();
System.Action handler = () => { };
source.Changed += handler;
source.Changed -= handler;
class Source
{
    public event System.Action Changed { add { System.Console.WriteLine("Add"); } remove { System.Console.WriteLine("Remove"); } }
}

Результат:

Add
Remove

Синтаксис

event Action Changed { add { ... } remove { ... value ... } }

Приклад 1: базова форма

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        Notifier source = new();
        Action handler = () => Console.WriteLine("Changed");
        source.Changed += handler; source.Publish(); source.Changed -= handler; source.Publish();
    }
}
public class Notifier { private Action? handlers; public event Action Changed { add { handlers += value; } remove { handlers -= value; } } public void Publish() { handlers?.Invoke(); } }

Пример 2: другая практическая форма

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        Signal signal = new();
        Action handler = () => Console.WriteLine("Signal");
        signal.Fired += handler; signal.Fire(); signal.Fired -= handler;
    }
}
public class Signal { private readonly List<Action> handlers = []; public event Action Fired { add { handlers.Add(value); } remove { handlers.Remove(value); } } public void Fire() { foreach (Action handler in handlers.ToArray()) handler(); } }

Официальный источник: Microsoft Learn.

Clone this wiki locally