Cara menggunakan parameter bernama dan pilihan dalam C #

Microsoft memperkenalkan sokongan untuk parameter yang dinamakan dan pilihan dalam C # 4.0. Sementara parameter bernama digunakan untuk menentukan argumen berdasarkan nama argumen dan bukan posisi, parameter pilihan dapat digunakan untuk menghilangkan satu atau lebih parameter dalam tanda tangan kaedah. Parameter suatu kaedah boleh diperlukan atau pilihan bergantung pada apakah Anda perlu memberikan nilai ke parameter ini ketika metode tersebut dipanggil.

Harus diingat bahawa parameter bernama dan pilihan dapat digunakan bukan hanya dengan kaedah tetapi juga dengan pengindeks dan delegasi. Artikel ini membincangkan dua ciri kuat bahasa pengaturcaraan C # ini dan bagaimana kita dapat bekerja dengannya.

Untuk bekerja dengan contoh kod yang disediakan dalam artikel ini, anda harus memasang Visual Studio 2019 di sistem anda. Sekiranya anda belum mempunyai salinannya, anda boleh memuat turun Visual Studio 2019 di sini.

Buat projek aplikasi konsol di Visual Studio

Pertama, mari buat projek aplikasi konsol .NET Core di Visual Studio. Dengan mengandaikan Visual Studio 2019 dipasang di sistem anda, ikuti langkah-langkah yang digariskan di bawah untuk membuat projek aplikasi konsol .NET Core baru di Visual Studio.

  1. Lancarkan ID Studio Visual.
  2. Klik pada "Buat projek baru."
  3. Di tetingkap "Buat projek baru", pilih "Aplikasi Konsol (.NET Core)" dari senarai templat yang dipaparkan.
  4. Klik Seterusnya.
  5. Di tetingkap "Konfigurasikan projek baru anda" yang ditunjukkan di sebelah, tentukan nama dan lokasi untuk projek baru.
  6. Klik Buat.

Ini akan membuat projek aplikasi konsol .NET Core baru di Visual Studio 2019. Kami akan menggunakan projek ini untuk berfungsi dengan parameter yang dinamakan dan pilihan di bahagian seterusnya artikel ini.

Gunakan parameter bernama dalam C #

Apabila anda memanggil kaedah, konstruktor, pengindeks, atau perwakilan, anda mesti menyampaikan argumen untuk parameter yang diperlukan tetapi anda bebas untuk menghilangkan argumen untuk parameter yang telah ditentukan sebagai parameter pilihan.

Anda mungkin perlu memanggil kaedah yang mempunyai banyak parameter. Walaupun anda memanggil kaedah sedemikian dengan hanya parameter yang diperlukan, kadang-kadang sangat sukar untuk memahami argumen yang memetakan ke parameter mana. Di sinilah argumen bernama untuk menyelamatkan.

Argumen dinamakan dalam bahasa pengaturcaraan C # digunakan untuk mengaitkan nama argumen suatu kaedah dengan nilainya - iaitu, nilai yang dilalui sebagai argumen ketika memanggil kaedah tersebut. Perlu diperhatikan bahawa ketika menggunakan argumen bernama, argumen dinilai dalam urutan yang sama di mana mereka disahkan.

Mari lihat contohnya. Tulis kaedah berikut bernama Tambah di dalam kelas Program projek aplikasi konsol baru anda.

int statik awam Tambah (int x, int y, int z, int a, int b, int c)

{

   pulangkan x + y + z + a + b + c;

}

Katakan anda memanggil kaedah Tambah seperti yang ditunjukkan dalam coretan kod di bawah.

kekosongan statik Utama (string [] args)

{

    Tambah (5, 10);

}

Kod di atas tidak akan berfungsi kerana terdapat enam parameter yang diperlukan (tidak ada parameter pilihan) dalam tandatangan kaedah Tambah tetapi anda hanya melewati dua argumen. Anda akan mendapat ralat berikut.

Oleh itu, anda terpaksa meneruskan nilai ke setiap parameter untuk memenuhi panggilan seperti yang ditunjukkan dalam coretan kod yang diberikan di bawah.

kekosongan statik Utama (string [] args)

{

   Tambah (5, 10, 8, 2, 3, 6);

}

Perkara menjadi rumit apabila anda mempunyai gabungan jenis data dalam parameter kaedah. Untuk menggambarkannya, mari ubah kaedah Tambah kami seperti yang ditunjukkan dalam coretan kod berikut.

int statik awam Tambah (int x, int y, int z, double a, double b, double c)

{

    pulangkan x + y + z + Convert.ToInt32 (a) + Convert.ToInt32 (b) + Convert.ToInt32 (c);

}

Mengingat jenis data parameter dan kedudukannya membebankan. Penyelesaian untuk ini adalah dengan memanfaatkan argumen bernama dan memberikan nilai ke kaedah seperti yang ditunjukkan dalam potongan kode yang diberikan di bawah.

kekosongan statik Utama (string [] args)

{

    Tambah (x: 5, y: 10, z: 8, a: 2.0, b: 3.0, c: 6.0);

}

Anda bahkan boleh mengubah urutan argumen bernama, seperti yang ditunjukkan dalam coretan kod yang diberikan di bawah.

kekosongan statik Utama (string [] args)

{

    Tambah (z: 8, x: 5, y: 10, c: 6, a: 2.0, b: 3.0);

}

Selagi anda menamakan argumen, anda boleh meneruskannya mengikut urutan apa pun dan penyusun tidak akan menandakan sebarang kesalahan - iaitu, ini betul-betul berlaku dalam C #.

Gunakan parameter pilihan dalam C #

Parameter pilihan dalam bahasa pengaturcaraan C # membolehkan anda menentukan argumen dalam tandatangan kaedah bahawa pemanggil kaedah bebas untuk dihilangkan. Dengan kata lain, sementara anda mesti menentukan nilai untuk parameter yang diperlukan, anda mungkin memilih untuk tidak menentukan nilai untuk parameter pilihan. Dalam beberapa kes, parameter pilihan mungkin juga mempunyai nilai lalai yang terkait dengannya.

Nilai lalai dari parameter pilihan mungkin mempunyai salah satu dari tiga jenis nilai: ungkapan malar, ungkapan yang berbentuk jenis nilai, atau ungkapan yang berbentuk lalai (v) di mana v adalah nilai menaip.

Kaedah Tambah yang ditunjukkan dalam coretan kod berikut menggambarkan bagaimana anda dapat menentukan argumen pilihan untuk kaedah di C #.

int statik awam Tambah (int x, int y = 0, int z = 0)

{

    pulangkan x + y + z;

}

Dan inilah cara anda boleh memanggil kaedah Tambah.

Tambah (10);

Oleh kerana dua parameter dalam kaedah Tambah adalah pilihan, anda dapat meneruskan satu nilai bilangan bulat ke kaedah ketika memanggilnya. Berhati-hati untuk mengikuti urutan yang tepat untuk menentukan parameter dalam satu kaedah. Parameter yang diperlukan harus didahulukan, diikuti oleh parameter pilihan jika ada.

Parameter yang diberi nama dan opsional diperkenalkan ke bahasa pengaturcaraan C # untuk meningkatkan interoperabilitas dengan COM API. Menggunakan parameter bernama dapat meningkatkan keterbacaan kod sumber. Dan anda boleh memanfaatkan parameter pilihan sebagai pengganti untuk menggunakan kaedah yang terlalu banyak apabila definisi kaedah adalah serupa.

Cara melakukan lebih banyak perkara di C #:

  • Cara menggunakan antara muka dan kaedah rantai lancar dalam C #
  • Cara menguji kaedah statik unit di C #
  • Cara refactor objek Tuhan di C #
  • Cara menggunakan ValueTask dalam C #
  • Cara menggunakan kebolehubahan dalam C
  • Cara menggunakan const, hanya baca, dan statik di C #
  • Cara menggunakan anotasi data di C #
  • Cara bekerja dengan GUID di C # 8
  • Bilakah menggunakan kelas abstrak vs antara muka dalam C #
  • Cara bekerja dengan AutoMapper di C #
  • Cara menggunakan ungkapan lambda dalam C #
  • Cara bekerjasama dengan delegasi Action, Func, dan Predicate di C #
  • Cara bekerja dengan perwakilan di C #
  • Cara melaksanakan pembalak sederhana di C #
  • Cara bekerja dengan atribut di C #
  • Cara bekerja dengan log4net di C #
  • Cara melaksanakan corak reka bentuk repositori di C #
  • Cara bekerja dengan refleksi di C #
  • Cara bekerja dengan pemantau sistem fail di C #
  • Cara melakukan inisial malas di C #
  • Cara bekerja dengan MSMQ di C #
  • Cara bekerja dengan kaedah peluasan di C #
  • Bagaimana untuk kami ungkapan lambda dalam C #
  • Bilakah menggunakan kata kunci tidak stabil dalam C #
  • Cara menggunakan kata kunci hasil dalam C #
  • Cara melaksanakan polimorfisme dalam C #
  • Bagaimana membina penjadual tugas anda sendiri di C #
  • Cara bekerja dengan RabbitMQ di C #
  • Cara bekerja dengan tuple di C #
  • Meneroka kaedah maya dan abstrak dalam C #
  • Cara menggunakan Dapper ORM di C #
  • Cara menggunakan corak reka bentuk flyweight di C #