0Pricing
C# Academy · Урок

Частичные типы и файлы

Разделяйте тип между файлами с помощью частичных классов и структур, а также используйте частичные методы для добавления пользовательской логики в сгенерированный код.

«Частичные типы и файлы» — бесплатный урок C# Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 3 уроков всего.

Обзор частичных типов

Цель: аккуратно разделять большие типы.

  • partial класс/структура: одно пространство имён и одно имя
  • Обычно части распределяют по нескольким файлам
  • partial методы: необязательные точки расширения внутри частичных типов

Части частичного класса

partial класс можно объявить в нескольких частях. Компилятор объединит их в один тип.

using System;

namespace Demo
{
  // Part 1: data
  public partial class Person
  {
    public string Name { get; private set; }
    public Person(string name) { Name = name; }
  }

  // Part 2: behavior
  public partial class Person
  {
    public string Greet() { return "Hi " + Name; }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Demo.Person p = new Demo.Person("Ada");
    Console.WriteLine(p.Greet());
  }
}

Частичные методы

partial методы — это точки расширения на этапе компиляции: если метод не реализован, вызов удаляется. В C# 6 они должны не возвращать значение и быть закрытыми.

using System;

namespace Demo
{
  public partial class Processor
  {
    // Partial method: implicitly private, must return void in C# 6
    partial void OnProcessed(string item);

    public void Run(string item)
    {
      // do work...
      OnProcessed(item); // call hook (removed by compiler if not implemented)
    }
  }

  public partial class Processor
  {
    // Implementation lives in another part (often another file)
    partial void OnProcessed(string item)
    {
      Console.WriteLine("Processed: " + item);
    }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Demo.Processor p = new Demo.Processor();
    p.Run("report");
  }
}

Когда использовать partial

Варианты применения:

  • Код конструктора или сгенерированный код — в одном файле, а безопасные изменения — в другом.
  • Разделение больших типов по возможностям: данные отдельно от поведения.
  • Необязательные точки расширения с помощью partial методов.

Частичная структура

С помощью partial можно также разделять структуры; на этапе компиляции результатом будет один тип структуры.

using System;

namespace Demo
{
  public partial struct Pair
  {
    public int A;
  }

  public partial struct Pair
  {
    public int B;
    public int Sum() { return A + B; }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Demo.Pair p = new Demo.Pair();
    p.A = 2; p.B = 3;
    Console.WriteLine("Sum = " + p.Sum());
  }
}

Правила partial и советы

Советы:

  • Все части должны использовать одно и то же пространство имён, имя и модификатор доступа.
  • Сосредоточьтесь на одной задаче в каждом файле (сгенерированный код отдельно от ручного).
  • В C# 6 partial методы не возвращают значения и являются закрытыми; делайте их небольшими.

Назначение частичного класса

Быстрая проверка: как можно практически использовать частичный класс в C# 6?

Повторение

Повторение: используйте partial, чтобы разделять типы между файлами, и добавляйте partial методы для необязательных точек расширения. Храните части в одном пространстве имён и под одним именем, а объединить их поручите компилятору.

Часто задаваемые вопросы

Урок «Частичные типы и файлы» бесплатный?

Да — полный текст урока «Частичные типы и файлы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 3 уроков всего.

Чему я научусь в уроке «Частичные типы и файлы»?

Разделяйте тип между файлами с помощью частичных классов и структур, а также используйте частичные методы для добавления пользовательской логики в сгенерированный код. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Частичные типы и файлы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. public/internal/protected/private (с примечанием о file)
  2. Пространства имён, директивы using и глобальные using (примечание)
  3. Частичные типы и файлы
← Назад к C# Academy