C# Language parziale


Esempio

La parola chiave partial può essere utilizzata durante la definizione del tipo di classe, struct o interfaccia per consentire la divisione della definizione del tipo in più file. Questo è utile per incorporare nuove funzionalità nel codice generato automaticamente.

File1.cs

namespace A
{
    public partial class Test
    {
        public string Var1 {get;set;}
    }
}

File2.cs

namespace A
{
    public partial class Test
    {
        public string Var2 {get;set;}
    }
}

Nota: una classe può essere suddivisa in un numero qualsiasi di file. Tuttavia, tutte le dichiarazioni devono trovarsi nello stesso spazio dei nomi e nello stesso assembly.

I metodi possono anche essere dichiarati parziali usando la parola chiave partial . In questo caso un file conterrà solo la definizione del metodo e un altro file conterrà l'implementazione.

Un metodo parziale ha la propria firma definita in una parte di un tipo parziale e la sua implementazione definita in un'altra parte del tipo. I metodi parziali consentono ai progettisti di classi di fornire hook di metodo, simili ai gestori di eventi, che gli sviluppatori possono decidere di implementare o meno. Se lo sviluppatore non fornisce un'implementazione, il compilatore rimuove la firma al momento della compilazione. Le seguenti condizioni si applicano ai metodi parziali:

  • Le firme in entrambe le parti del tipo parziale devono corrispondere.
  • Il metodo deve restituire void.
  • Non sono ammessi modificatori di accesso. I metodi parziali sono implicitamente privati.

- MSDN

File1.cs

namespace A
{
    public partial class Test
    {
        public string Var1 {get;set;}
        public partial Method1(string str);
    }
}

File2.cs

namespace A
{
    public partial class Test
    {
        public string Var2 {get;set;}
        public partial Method1(string str)
        {
            Console.WriteLine(str);
        }
    }
}

Nota: anche il tipo contenente il metodo parziale deve essere dichiarato parziale.