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:
Den har inga hjälpmedelsmodifierare (inklusive den privata standardinställningen).
Den returnerar tomrum.
Den har inga utparametrar .
Den har inte någon av följande modifierare virtuell, åsidosättning, förseglad, ny eller extern.
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
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för