CSharp Namespaces Extensions - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Простір імен, using та методи розширення
namespace групує типи та допомагає уникнути збігів імен. using підключає простір імен, або задає інше ім'я типу, 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.