Share via


partiell metod (C#-referens)

En partiell metod har sin signatur definierad i en del av en partiell typ och dess implementering definieras i en annan del av typen. Med partiella metoder kan klassdesigners tillhandahålla metodkrokar, liknande händelsehanterare, som utvecklare kan besluta att implementera eller inte. Om utvecklaren inte tillhandahåller någon implementering tar kompilatorn bort signaturen vid kompileringstillfället. Följande villkor gäller för partiella metoder:

  • Deklarationer måste börja med det kontextuella nyckelordet partiellt.

  • Signaturer i båda delarna av den partiella typen måste matcha.

Nyckelordet partial tillåts inte för konstruktorer, finalatorer, överbelastade operatorer, egenskapsdeklarationer eller händelsedeklarationer.

En partiell metod krävs inte för att ha en implementering i följande fall:

Alla metoder som inte överensstämmer med alla dessa begränsningar (till exempel public virtual partial void metod) måste tillhandahålla en implementering.

I följande exempel visas en partiell metod som definierats i två delar av en partiell klass:

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);
        }
    }
}

Partiella metoder kan också vara användbara i kombination med källgeneratorer. Till exempel kan en regex definieras med hjälp av följande mönster:

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

Mer information finns i Partiella klasser och metoder.

Se även