C # Partial Class dan Partial Method (Dengan Contoh)

Dalam artikel ini kita akan belajar tentang bagaimana dan mengapa kaedah kelas dan separa dilaksanakan di C #.

Terdapat banyak situasi ketika anda mungkin perlu membahagikan definisi kelas, seperti ketika mengerjakan projek berskala besar, beberapa pembangun dan pengaturcara mungkin perlu bekerja pada kelas yang sama pada masa yang sama. Dalam kes ini kita dapat menggunakan ciri yang disebut Partial Class .

Pengenalan Kelas Separa

Semasa memprogram dalam C # (atau OOP), kita dapat membahagikan definisi kelas kepada dua atau lebih fail sumber. Fail sumber mengandungi bahagian definisi kelas, dan semua bahagian digabungkan ketika aplikasi disusun. Untuk membahagikan definisi kelas, kita perlu menggunakan partialkata kunci.

Contoh 1:

Kami mempunyai projek yang dinamakan sebagai HeightWeightInfomenunjukkan tinggi dan berat badan.

Kami mempunyai fail bernama File1.csdengan kelas separa yang dinamakan sebagai Record. Ia mempunyai dua pemboleh ubah integer h & w dan kaedah / konstruktor yang dinamakan sebagai Record yang memberikan nilai h & w.

 namespace HeightWeightInfo ( class File1 ( ) public partial class Record ( private int h; private int w; public Record(int h, int w) ( this.h = h; this.w = w; ) ) )

Berikut adalah fail lain yang dinamakan sebagai File2.cs dengan catatan separa kelas yang sama yang hanya mempunyai kaedah PrintRecord. Kaedah ini akan memaparkan nilai h & w.

 namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )

Di sini sekarang kita dapat melihat kaedah utama projek:

 namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )

Di sini kita mempunyai objek kelas Rakam sebagai myRecord yang meneruskan nilai parameter sebagai 10 dan 15 ke h dan w masing-masing ke kaedah yang ditentukan dalam File1.cs.

Kaedah PrintRecord dipanggil oleh objek myRecord yang didefinisikan dalam File2.cs.

Ini menunjukkan bahawa partialkata kunci membantu menggabungkan semua atribut kelas yang ditentukan dalam pelbagai fail untuk berfungsi sebagai satu kelas.

Tempat di mana partialkelas boleh digunakan:

  1. Semasa mengerjakan projek yang lebih besar dengan lebih daripada satu pembangun, ia membantu pembangun untuk bekerja di kelas yang sama secara serentak.
  2. Kod boleh ditambah atau diubah ke kelas tanpa membuat semula fail sumber yang secara automatik dihasilkan oleh IDE (iaitu Visual Studio).

Perkara yang Perlu Diingati mengenai Kelas Separa

Kata partialkunci menentukan bahawa bahagian lain dari kelas dapat ditentukan dalam ruang nama. Wajib menggunakan kata kunci separa sekiranya kita berusaha menjadikan kelas separa. Semua bahagian kelas harus berada di ruang nama yang sama dan tersedia pada waktu kompilasi untuk membentuk jenis akhir. Semua bahagian mesti mempunyai pengubah akses yang sama iaitu peribadi, awam atau sebagainya.

  • Sekiranya ada bahagian yang dinyatakan abstrak, maka keseluruhan jenis itu dianggap abstrak.
  • Sekiranya ada bahagian yang dinyatakan dimeteraikan, maka keseluruhan jenis itu dianggap ditutup.
  • Sekiranya ada bahagian yang menyatakan jenis asas, maka keseluruhan jenis mewarisi kelas tersebut.
  • Mana-mana ahli kelas yang dinyatakan dalam definisi separa tersedia untuk semua bahagian lain.
  • Semua bahagian kelas separa harus berada di ruang nama yang sama.

** Nota: The partialpengubah suai tidak boleh didapati pada wakil atau penghitungan pengisytiharan

Pencegahan kepada Kaedah Separa

Kelas separa mungkin mengandungi kaedah separa. Satu bahagian kelas mengandungi tandatangan kaedah. Pelaksanaan pilihan boleh ditentukan dalam bahagian yang sama atau bahagian lain. Sekiranya pelaksanaan tidak diberikan, maka kaedah dan semua panggilan dikeluarkan pada waktu kompilasi.

Contoh 2:

Mari kita ambil contoh sebagai kelas separa yang Carditakrifkan file1.csyang mempunyai tiga kaedah InitializeCar (), BuildRim () dan BuildWheels (). Di antara kaedah tersebut, InitializeCar ditakrifkan sebagai partial.

 public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )

Dan kami mempunyai satu lagi fail bernama file2.csyang mempunyai dua kaedah BuildEngine dan InitializeCar. Kaedah InitializeCar adalah kaedah separa yang juga ditentukan dalam file1.cs.

 public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )

Pengisytiharan kaedah separa terdiri daripada dua bahagian:

  1. Definisi seperti dalam file1.cs.
  2. Pelaksanaan seperti di file2.cs.

Mereka mungkin berada di bahagian yang terpisah dari kelas separa, atau di bahagian yang sama.

Perkara yang perlu diingat mengenai Kaedah Separa

  • partial kata kunci.
  • jenis pulangan void .
  • secara tersirat private.
  • dan tidak boleh virtual.

Artikel menarik...