Skip to content

RU CSharp Keyword closed

Codex edited this page Oct 11, 2026 · 2 revisions

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

C#: closed

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

Preview-модификатор закрытой иерархии: непосредственные потомки должны принадлежать тому же сборнику. Компилятор может анализировать полноту switch по следующим потомкам.

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

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

Example.cs:

// PROJECT-EXAMPLE
sealed class Finished { }

Этот короткий пример использует C# 14. Он не реализует preview-конструкцию closed: она здесь не поддерживается.

Синтаксис

public closed class Base { ... }

Официальный справочник относит closed к C# 15. Текущий C# 14 / .NET 10 эти примеры не принимает: нужны совместимый preview-компилятор и соответствующая runtime-платформа. Это обзор будущей возможности, а не команда включения поддержки.

Статус: preview; текущая конфигурация C# 14 / .NET 10 эти примеры не поддерживает.

Приклад 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)
    {
        Status status = new Ready();
        Console.WriteLine(status switch { Ready => "ready", Busy => "busy" });
    }
}
public closed record Status;
public sealed record Ready : Status;
public sealed record Busy : Status;

Пример 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)
    {
        Shape shape = new Circle(3);
        Console.WriteLine(shape switch { Circle(var radius) => radius * radius, Box(var width) => width * width });
    }
}
public closed record Shape;
public sealed record Circle(int Radius) : Shape;
public sealed record Box(int Width) : Shape;

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

Clone this wiki locally