método parcial (Referência C#)

Um método parcial tem sua assinatura definida em uma parte de um tipo parcial e sua implementação definida em outra parte do tipo. Os métodos parciais permitem que os designers de classe forneçam ganchos de método, semelhantes aos manipuladores de eventos, que os desenvolvedores podem decidir implementar ou não. Se o desenvolvedor não fornecer uma implementação, o compilador removerá a assinatura em tempo de compilação. As seguintes condições aplicam-se aos métodos parciais:

  • As declarações devem começar com a palavra-chave contextual parcial.

  • As assinaturas em ambas as partes do tipo parcial devem corresponder.

A partial palavra-chave não é permitida em construtores, finalizadores, operadores sobrecarregados, declarações de propriedade ou declarações de evento.

Um método parcial não é necessário para ter uma implementação nos seguintes casos:

Qualquer método que não esteja em conformidade com todas essas restrições (por exemplo, public virtual partial void método), deve fornecer uma implementação.

O exemplo a seguir mostra um método parcial definido em duas partes de uma classe parcial:

namespace PM
{
    partial class A
    {
        partial void OnSomethingHappened(string s);
    }

    // This part can be in a separate file.
    partial class A
    {
        // Comment out this method and the program
        // will still compile.
        partial void OnSomethingHappened(String s)
        {
            Console.WriteLine("Something happened: {0}", s);
        }
    }
}

Métodos parciais também podem ser úteis em combinação com geradores de fonte. Por exemplo, um regex pode ser definido usando o seguinte padrão:

[GeneratedRegex("(dog|cat|fish)")]
partial bool IsPetMatch(string input);

Para obter mais informações, consulte Classes e métodos parciais.

Consulte também