Re[7]: partial methods
От: RushDevion Россия  
Дата: 31.10.24 08:24
Оценка: 10 (1) +2
S>Вопрос, а как определяется порядок компиляции partial методов? Из какого partial метода код
S>раньше\позже? Я это понимаю так, что в конце все partial методы превращаются в один метод, не partial.

Если я правильно понял вопрос, то речь о чем-то таком?
// MyClass.cs
public partial class MyClass
{
    public void Action()
    {
        BeforeAction();
    }

    partial void BeforeAction();
}

// MyClass.Partial1.cs
public partial class MyClass
{
    partial void BeforeAction() 
    {
       Console.WriteLine("First");
    }
}

// MyClass.Partial2.cs
public partial class MyClass
{
    partial void BeforeAction() 
    {
       Console.WriteLine("Second");
    }
}

Это не скомпилируется. Будет ошибка: "A partial method may not have multiple defining declarations"

S>Как это происходит?

Очень просто. Сводим все partial-файлы для типа в один, заменяя partial definition на partial declaration.

И, кстати, в отличие от virtual/override, partial работает только в рамках текущей сборки (текущего проекта).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.