Cara menggunakan parameter bernama dan opsional di C #

Microsoft memperkenalkan dukungan untuk parameter bernama dan opsional di C # 4.0. Sementara parameter bernama digunakan untuk menentukan argumen berdasarkan nama argumen dan bukan posisinya, parameter opsional dapat digunakan untuk menghilangkan satu atau lebih parameter dalam tanda tangan metode. Parameter metode dapat berupa wajib atau opsional bergantung pada apakah Anda perlu meneruskan nilai ke parameter ini saat metode dipanggil.

Perlu dicatat bahwa parameter bernama dan opsional dapat digunakan tidak hanya dengan metode tetapi juga dengan pengindeks dan delegasi. Artikel ini membahas dua fitur hebat dari bahasa pemrograman C # ini dan bagaimana kami dapat bekerja dengannya.

Untuk bekerja dengan contoh kode yang disediakan dalam artikel ini, Anda harus menginstal Visual Studio 2019 di sistem Anda. Jika Anda belum memiliki salinannya, Anda dapat mengunduh Visual Studio 2019 di sini.

Buat proyek aplikasi konsol di Visual Studio

Pertama, mari buat proyek aplikasi konsol .NET Core di Visual Studio. Dengan asumsi Visual Studio 2019 diinstal di sistem Anda, ikuti langkah-langkah yang diuraikan di bawah ini untuk membuat proyek aplikasi konsol .NET Core baru di Visual Studio.

  1. Luncurkan Visual Studio IDE.
  2. Klik "Buat proyek baru".
  3. Di jendela "Buat proyek baru", pilih "Aplikasi Konsol (.NET Core)" dari daftar template yang ditampilkan.
  4. Klik Next.
  5. Di jendela "Configure your new project" yang ditampilkan berikutnya, tentukan nama dan lokasi untuk proyek baru tersebut.
  6. Klik Buat.

Ini akan membuat proyek aplikasi konsol .NET Core baru di Visual Studio 2019. Kami akan menggunakan proyek ini untuk bekerja dengan parameter bernama dan opsional di bagian selanjutnya dari artikel ini.

Gunakan parameter bernama di C #

Saat Anda memanggil metode, konstruktor, pengindeks, atau delegasi, Anda harus meneruskan argumen untuk parameter yang diperlukan, tetapi Anda bebas menghilangkan argumen untuk parameter yang telah ditentukan sebagai parameter opsional.

Anda mungkin sering perlu memanggil metode yang memiliki banyak parameter. Dan bahkan ketika Anda memanggil metode seperti itu hanya dengan parameter yang diperlukan, terkadang sangat sulit untuk memahami argumen mana yang memetakan ke parameter mana. Di sinilah argumen bernama datang untuk menyelamatkan.

Argumen bernama dalam bahasa pemrograman C # digunakan untuk mengasosiasikan nama argumen metode dengan nilainya - yaitu, nilai yang diteruskan sebagai argumen saat memanggil metode. Perlu dicatat bahwa saat menggunakan argumen bernama, argumen dievaluasi dalam urutan yang sama seperti saat diteruskan.

Mari kita lihat contohnya. Tulis metode berikut bernama Add inside the Program class dari proyek aplikasi konsol baru Anda.

public static int Add (int x, int y, int z, int a, int b, int c)

{

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

}

Misalkan Anda memanggil metode Add seperti yang ditunjukkan pada potongan kode di bawah ini.

static void Main (string [] args)

{

    Tambahkan (5, 10);

}

Kode di atas tidak akan berfungsi karena ada enam parameter yang diperlukan (tidak ada yang merupakan parameter opsional) dalam tanda tangan metode Add tetapi Anda hanya memberikan dua argumen. Anda akan melihat kesalahan berikut.

Karenanya, Anda dibatasi untuk meneruskan nilai ke setiap parameter untuk memenuhi panggilan seperti yang ditunjukkan dalam cuplikan kode yang diberikan di bawah ini.

static void Main (string [] args)

{

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

}

Segalanya menjadi rumit saat Anda memiliki campuran tipe data dalam parameter metode. Untuk mengilustrasikan ini, mari kita ubah metode Add kita seperti yang ditunjukkan pada potongan kode berikut.

public static int Add (int x, int y, int z, double a, double b, double c)

{

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

}

Tidak praktis mengingat tipe data dari parameter serta posisinya. Solusi untuk ini adalah dengan memanfaatkan argumen bernama dan meneruskan nilai ke metode seperti yang ditunjukkan dalam cuplikan kode yang diberikan di bawah ini.

static void Main (string [] args)

{

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

}

Anda bahkan dapat mengubah urutan argumen bernama, seperti yang ditunjukkan dalam potongan kode yang diberikan di bawah ini.

static void Main (string [] args)

{

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

}

Selama Anda memberi nama argumen, Anda dapat meneruskannya dalam urutan apa pun dan kompilator tidak akan menandai kesalahan apa pun - yaitu, ini benar-benar valid di C #.

Gunakan parameter opsional di C #

Parameter opsional dalam bahasa pemrograman C # memungkinkan Anda menentukan argumen dalam tanda tangan metode yang dapat dihilangkan oleh pemanggil metode tersebut. Dengan kata lain, saat Anda harus menentukan nilai untuk parameter yang diperlukan, Anda mungkin memilih untuk tidak menentukan nilai untuk parameter opsional. Dalam beberapa kasus, parameter opsional mungkin memiliki nilai default yang terkait dengannya juga.

Nilai default dari parameter opsional dapat memiliki salah satu dari tiga jenis nilai: ekspresi konstan, ekspresi dalam bentuk tipe nilai, atau ekspresi dalam bentuk default (v) di mana v adalah nilai Tipe.

Metode Add yang ditampilkan dalam cuplikan kode berikut mengilustrasikan bagaimana Anda dapat menentukan argumen opsional ke metode di C #.

public static int Add (int x, int y = 0, int z = 0)

{

    kembali x + y + z;

}

Dan inilah cara Anda memanggil metode Tambah.

Tambahkan (10);

Karena dua parameter dalam metode Tambah bersifat opsional, Anda dapat meneruskan satu nilai bilangan bulat ke metode saat memanggilnya. Berhati-hatilah untuk mengikuti urutan yang tepat dalam menentukan parameter dalam suatu metode. Parameter yang dibutuhkan harus didahulukan, diikuti oleh parameter opsional jika ada.

Parameter bernama dan opsional diperkenalkan ke bahasa pemrograman C # untuk meningkatkan interoperabilitas dengan COM API. Menggunakan parameter bernama dapat meningkatkan keterbacaan kode sumber. Dan Anda dapat memanfaatkan parameter opsional sebagai pengganti untuk menggunakan metode kelebihan beban jika definisi metode identik.

Bagaimana melakukan lebih banyak di C #:

  • Cara menggunakan antarmuka yang lancar dan rangkaian metode di C #
  • Cara menguji unit metode statis di C #
  • Cara refactor objek Tuhan di C #
  • Cara menggunakan ValueTask di C #
  • Cara menggunakan kekekalan di C
  • Cara menggunakan const, readonly, dan static di C #
  • Cara menggunakan anotasi data di C #
  • Cara bekerja dengan GUID di C # 8
  • Kapan menggunakan kelas abstrak vs. antarmuka di C #
  • Bagaimana bekerja dengan AutoMapper di C #
  • Cara menggunakan ekspresi lambda di C #
  • Cara bekerja dengan delegasi Action, Func, dan Predicate di C #
  • Bagaimana bekerja dengan delegasi di C #
  • Bagaimana menerapkan logger sederhana di C #
  • Bagaimana bekerja dengan atribut di C #
  • Bagaimana bekerja dengan log4net di C #
  • Bagaimana menerapkan pola desain repositori di C #
  • Bagaimana bekerja dengan refleksi di C #
  • Bagaimana bekerja dengan filesystemwatcher di C #
  • Bagaimana melakukan inisialisasi malas di C #
  • Bagaimana bekerja dengan MSMQ di C #
  • Bagaimana bekerja dengan metode ekstensi di C #
  • Bagaimana kami ekspresi lambda di C #
  • Kapan menggunakan kata kunci volatile di C #
  • Cara menggunakan kata kunci hasil di C #
  • Bagaimana menerapkan polimorfisme di C #
  • Cara membuat penjadwal tugas Anda sendiri di C #
  • Bagaimana bekerja dengan RabbitMQ di C #
  • Bagaimana bekerja dengan tupel di C #
  • Menjelajahi metode virtual dan abstrak di C #
  • Cara menggunakan Dapper ORM di C #
  • Cara menggunakan pola desain kelas terbang di C #