Cara menggunakan const, readonly, dan static di C #

Kata kunci const, readonly, dan static sering digunakan saat memprogram dalam C #. Namun, meskipun kata kunci ini memiliki perbedaan penting, kata kunci tersebut juga memiliki kesamaan yang terkadang membuat sulit untuk mengetahui kapan harus menggunakannya. Artikel ini membahas kata kunci const, statis, dan hanya-baca di C #, bagaimana perbandingannya, dan bagaimana kita harus menggunakannya dalam aplikasi C # kita.

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 2019

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 menggambarkan penggunaan kata kunci const, readonly, dan statis di C # di bagian selanjutnya dari artikel ini.

Gunakan kata kunci const di C #

Kata kunci const (baca: konstanta) dalam C # digunakan untuk mendefinisikan variabel konstan, yaitu variabel yang nilainya tidak akan berubah selama masa program. Oleh karena itu, sangat penting bagi Anda untuk menetapkan nilai ke variabel konstan pada saat deklarasinya.

Nilai variabel konstan ini juga dikenal sebagai nilai "waktu kompilasi". Variabel yang dideklarasikan menggunakan kata kunci const juga dikenal sebagai konstanta waktu kompilasi. Perlu dicatat bahwa variabel konstan tidak dapat diubah, yaitu nilai yang ditetapkan ke variabel konstan tidak dapat diubah nanti.

Cuplikan kode berikut mengilustrasikan bagaimana Anda dapat menentukan konstanta waktu kompilasi menggunakan kata kunci const di C #.

const string connectionString = "Tentukan string koneksi database Anda di sini.";

Perhatikan bahwa Anda harus menetapkan nilai ke variabel konstan pada saat Anda menentukannya. Perhatikan juga bahwa Anda tidak dapat menggunakan kata kunci const untuk membuat objek konstan. Kata kunci const hanya dapat diterapkan pada tipe data primitif (seperti int, float, chars, dan boolean) dan string. Mari kita pahami penggunaan const dengan sebuah contoh.

Pertimbangkan kelas berikut bernama Penulis. Kami akan memberikan kelas Pengarang hanya beberapa properti untuk membuatnya sederhana.

kelas publik Penulis

    {

        public int Id {get; set; }

        string publik FirstName {get; set; }

        string publik LastName {get; set; }

        public string Address {get; set; }

    }

Sekarang jika Anda mencoba membuat objek konstan dari kelas Author menggunakan kata kunci const, Anda akan mengamati kesalahan kompilasi yang ditunjukkan pada Gambar 1 di bawah.

Kesalahan ini menunjukkan bahwa sisi kanan operator penugasan harus memiliki nilai konstan untuk memenuhi ekspresi. Karena pernyataan new Author()tersebut bukan konstanta, tugas tersebut tidak valid dan karenanya error.

Gunakan kata kunci readonly di C #

Kata kunci readonly dapat digunakan untuk mendefinisikan variabel atau objek sebagai readable only. Ini berarti bahwa variabel atau objek dapat diberi nilai pada lingkup kelas atau hanya dalam konstruktor. Anda tidak dapat mengubah nilai atau menetapkan kembali nilai ke variabel atau objek hanya-baca dalam metode lain kecuali konstruktor.

Mari kita pahami ini dengan sebuah contoh. Pertimbangkan kelas berikut bernama DbManager.

public class DbManager

    {

        public string connectionString =

        "Tentukan string koneksi database Anda di sini.";

        publik DbManager ()

        {

            connectionString = "Anda dapat menetapkan kembali nilai di sini.";

        }

        public void ReAssign ()

        {

            connectionString = "Ini tidak diperbolehkan";

        }

    }

Kode di atas tidak akan dikompilasi dan Anda akan disajikan dengan kesalahan yang ditunjukkan pada Gambar 2.

Gunakan kata kunci statis di C #

Kata kunci statis di C # dapat digunakan pada variabel, metode, atau objek. Perhatikan bahwa anggota statis kelas milik tipe objek, bukan ke instance tipe. Dengan kata lain, anggota statis diakses dengan nama kelas, bukan nama instance. 

Pertimbangkan kelas berikut bernama Utilitas yang berisi metode statis.

Utilitas kelas publik

    {

        public static void SomeMethod ()

        {

            // Tulis kode Anda di sini

        }

    }

Anda tidak dapat memanggil metode SomeMethod()menggunakan instance kelas Utilitas. Sebaliknya, Anda harus memanggil metode ini menggunakan sintaks berikut.

Utility.SomeMethod ();

Aturan yang sama berlaku untuk variabel statis atau objek statis. Anda dapat merujuk ke anggota statis kelas hanya dengan menggunakan sintaks yang ditunjukkan di bawah ini.

ClassName . Anggota;

Atau

ClassName . Anggota();

Sebuah konstruktor kelas bisa statis. Sebuah konstruktor statis kelas digunakan untuk menginisialisasi anggota statis kelas. Namun, konstruktor statis kelas tidak dapat menerima parameter.

Aturan untuk const, readonly, dan static

Berikut adalah aturan praktis yang dapat Anda ikuti saat bekerja dengan kata kunci const, hanya baca, dan statis. Gunakan kata kunci const jika nilai yang terkandung dalam variabel tidak akan pernah berubah selama masa pakai aplikasi. Gunakan kata kunci readonly ketika Anda tidak yakin apakah nilai variabel suatu objek perlu diubah tetapi Anda ingin mencegah kelas lain mengubah nilainya. Gunakan kata kunci statis ketika Anda ingin anggota kelas termasuk ke dalam tipe daripada ke dalam contoh tipe.

Bagaimana melakukan lebih banyak 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 #