Repository navigation
RU CSharp Namespaces Extensions
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
namespace группирует типы и помогает избежать совпадений имён. using подключает пространство имён, alias задаёт другое имя типу, using static подключает статические члены. global using действует во всех файлах обычного проекта.
Сохраните этот пример отдельно как 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.
ClassicUO — Bad Newbie & C# Scripts IDE