Ключевое слово partial
Модификатор partial перед class,
struct
или record
означает, что определение типа продолжается
в другом месте - обычно в другом файле.
Компилятор склеивает все части в один тип.
Члены из разных частей видят друг друга, в том
числе private.
Синтаксис
partial class Имя
{
// часть 1
}
partial class Имя
{
// часть 2
}
Пример
Давайте объявим partial класс в двух
частях одного файла и вызовем метод из
второй части:
using System;
partial class Worker
{
public void Run()
{
ShowCode();
}
}
partial class Worker
{
private void ShowCode()
{
Console.WriteLine("12345");
}
}
class Program
{
static void Main()
{
new Worker().Run();
}
}
Результат выполнения кода:
"12345"
Пример
Давайте разнесём поле и метод по двум частям
partial класса:
using System;
partial class Holder
{
private string text = "abcde";
}
partial class Holder
{
public void Print()
{
Console.WriteLine(text);
}
}
class Program
{
static void Main()
{
new Holder().Print();
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте добавим partial свойство во
второй части типа:
using System;
partial class Meter
{
private int value;
}
partial class Meter
{
public int Value
{
get { return value; }
set { value = value; }
}
}
class Program
{
static void Main()
{
var meter = new Meter();
meter.Value = 5;
Console.WriteLine(meter.Value);
}
}
Результат выполнения кода:
5