Skip to content

RU CSharp Namespaces Extensions

Codex edited this page Oct 11, 2026 · 2 revisions

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

Пространства имён, using и методы расширения

Руководство C# · Примеры UO

namespace группирует типы и помогает избежать совпадений имён. using подключает пространство имён, alias задаёт другое имя типу, using static подключает статические члены. global using действует во всех файлах обычного проекта.

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

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

Example.cs:

// PROJECT-EXAMPLE
using System;
Console.WriteLine("ore".Twice());
static class TextTools { public static string Twice(this string value) => value + value; }

Результат:

oreore
// PROJECT-EXAMPLE
using System;
using Number = System.Int32;
using static System.Math;

namespace UserTools;

public static class Calculation
{
    public static Number Clamp(Number value) => Max(0, Min(100, value));
}

Метод расширения объявляют в подходящем статическом типе обычного .cs-проекта. Он позволяет вызывать статический метод как член объекта без изменения объявления исходного типа. Код расширения может изменять состояние переданного объекта, если его API допускает такое изменение. В .csx можно использовать уже подключённые расширения, например LINQ; namespace-объявления и расширения библиотек оформляйте в обычных исходниках.

// PROJECT-EXAMPLE
using System;

namespace UserTools;

public static class NumberExtensions
{
    public static bool IsPositive(this int value) => value > 0;
}

public static class Example
{
    public static bool Run() => (3).IsPositive();
}

Официальная документация: Пространства имён, using и методы расширения — Microsoft Learn.

Clone this wiki locally