metode parsial (Referensi C#)

Metode parsial memiliki tanda tangan yang didefinisikan dalam satu bagian dari jenis parsial, dan implementasinya didefinisikan di bagian lain dari jenis tersebut. Metode parsial memungkinkan perancang kelas untuk menyediakan kait metode, mirip dengan penanganan aktivitas, yang dapat diputuskan oleh pengembang untuk diimplementasikan atau tidak. Jika pengembang tidak menyediakan implementasi, pengompilasi menghapus tanda tangan pada waktu kompilasi. Ketentuan berikut berlaku untuk metode parsial:

  • Deklarasi harus dimulai dengan kata kunci kontekstual parsial.

  • Tanda tangan di kedua bagian jenis parsial harus cocok.

Kata kunci partial tidak diizinkan pada konstruktor, finalizer, operator yang kelebihan beban, deklarasi properti, atau deklarasi peristiwa.

Metode parsial tidak diperlukan untuk memiliki implementasi dalam kasus berikut:

  • Metode tersebut tidak memiliki pengubah aksesibilitas (termasuk privat default).

  • Metode tersebut mengembalikan void.

  • Metode tersebut tidak memiliki parameter keluar.

  • Metode tersebut tidak memiliki satu pun pengubah berikut virtual, ambil alih, disegel, baru, atau ekstern.

Metode apa pun yang tidak sesuai dengan semua batasan tersebut (misalnya, metode public virtual partial void), harus menyediakan implementasi.

Contoh berikut menunjukkan metode parsial yang didefinisikan dalam dua bagian kelas parsial:

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

Metode parsial juga dapat berguna dalam kombinasi dengan generator sumber. Misalnya regex dapat didefinisikan menggunakan pola berikut:

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

Untuk informasi selengkapnya, lihat Kelas dan Metode Parsial.

Lihat juga