Cara menggunakan const, hanya baca, dan statik di C #

Kata kunci const, readonly, dan static sering digunakan semasa memprogram di C #. Walau bagaimanapun, walaupun kata kunci ini mempunyai perbezaan yang penting, kata kunci ini juga mempunyai persamaan yang kadang-kadang menyukarkan untuk mengetahui kapan menggunakannya. Artikel ini membincangkan kata kunci konstanta, statik dan hanya baca di C #, bagaimana mereka membandingkan, dan bagaimana kita harus menggunakannya dalam aplikasi C # kita.

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 2019

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 yang baru di Visual Studio 2019. Kami akan menggunakan projek ini untuk menggambarkan penggunaan kata kunci konstanta, baca, dan statik dalam C # di bahagian seterusnya artikel ini.

Gunakan kata kunci const di C #

Kata kunci const (baca: malar) dalam C # digunakan untuk menentukan pemboleh ubah tetap, iaitu, pemboleh ubah yang nilainya tidak akan berubah sepanjang hayat program. Oleh itu, adalah mustahak untuk menetapkan nilai kepada pemboleh ubah tetap pada masa pengisytiharannya.

Nilai pemboleh ubah tetap ini juga dikenali sebagai nilai "masa kompilasi". Pemboleh ubah yang dinyatakan menggunakan kata kunci const juga dikenali sebagai pemalar masa kompilasi. Harus diingat bahawa pemboleh ubah tetap tidak boleh berubah, iaitu, nilai yang diberikan kepada pemboleh ubah tetap tidak boleh diubah kemudian.

Coretan kod berikut menggambarkan bagaimana anda dapat menentukan pemalar masa kompilasi menggunakan kata kunci const di C #.

const string connectionString = "Tentukan rentetan sambungan pangkalan data anda di sini.";

Perhatikan bahawa anda mesti memberikan nilai kepada pemboleh ubah tetap pada masa anda menentukannya. Perhatikan juga bahawa anda tidak boleh menggunakan kata kunci const untuk membuat objek tetap. Kata kunci const hanya dapat digunakan untuk jenis data primitif (seperti int, floats, chars, dan booleans) dan string. Mari kita fahami penggunaan const dengan contoh.

Pertimbangkan kelas berikut bernama Pengarang. Kami akan memberikan kelas Pengarang hanya beberapa sifat untuk menjadikannya mudah.

Pengarang kelas awam

    {

        id int awam {dapatkan; menetapkan; }

        rentetan awam FirstName {get; menetapkan; }

        rentetan umum LastName {get; menetapkan; }

        rentetan awam Alamat {get; menetapkan; }

    }

Sekarang jika anda cuba membuat objek tetap dari kelas Pengarang menggunakan kata kunci const, anda akan melihat ralat penyusunan yang ditunjukkan dalam Rajah 1 di bawah.

Kesalahan ini menunjukkan bahawa sebelah kanan pengendali tugasan harus mempunyai nilai tetap untuk memuaskan ungkapan. Oleh kerana pernyataan new Author()itu bukan pemalar, penugasan tidak sah dan dengan itu kesalahan.

Gunakan kata kunci yang dibaca dalam C #

Kata kunci readonly boleh digunakan untuk menentukan pemboleh ubah atau objek sebagai hanya boleh dibaca. Ini bermaksud bahawa pemboleh ubah atau objek boleh diberikan nilai pada ruang lingkup kelas atau hanya dalam konstruktor. Anda tidak boleh mengubah nilai atau menetapkan semula nilai ke pemboleh ubah atau objek yang boleh dibaca dalam kaedah lain kecuali konstruktor.

Mari kita fahami ini dengan contoh. Pertimbangkan kelas berikut bernama DbManager.

kelas awam DbManager

    {

        sambungan rentas baca awamString =

        "Tentukan rentetan sambungan pangkalan data anda di sini.";

        awam DbManager ()

        {

            connectionString = "Anda boleh menetapkan semula nilai di sini.";

        }

        kekosongan awam ReAssign ()

        {

            connectionString = "Ini tidak dibenarkan";

        }

    }

Kod di atas tidak akan disusun dan anda akan diberikan ralat seperti yang ditunjukkan dalam Rajah 2.

Gunakan kata kunci statik di C #

Kata kunci statik dalam C # dapat digunakan pada variabel, metode, atau objek. Perhatikan bahawa ahli statik kelas tergolong dalam jenis objek dan bukan jenisnya. Dengan kata lain, ahli statik diakses dengan nama kelas, bukan nama contoh. 

Pertimbangkan kelas berikut bernama Utility yang mengandungi kaedah statik.

Utiliti kelas awam

    {

        kekosongan statik awam Beberapa Kaedah ()

        {

            // Tuliskan kod anda di sini

        }

    }

Anda tidak boleh memanggil kaedah SomeMethod()menggunakan contoh kelas Utiliti. Sebaliknya, anda harus memanggil kaedah ini menggunakan sintaks berikut.

Utiliti.SomeMode ();

Peraturan yang sama berlaku untuk pemboleh ubah statik atau objek statik. Anda boleh merujuk ahli statik kelas hanya dengan menggunakan sintaks yang ditunjukkan di bawah.

Nama Kelas . Ahli;

Atau

Nama Kelas . Ahli ();

Pembina kelas boleh menjadi statik. Pembina statik kelas digunakan untuk menginisialisasi ahli statik kelas. Walau bagaimanapun, pembina statik kelas tidak dapat menerima parameter.

Peraturan untuk const, readonly, dan static

Inilah peraturan praktikal yang boleh anda ikuti ketika bekerja dengan kata kunci konstanta, baca, dan statik. Gunakan kata kunci const apabila nilai yang terdapat dalam pemboleh ubah tidak akan pernah berubah sepanjang hayat aplikasi. Gunakan kata kunci baca sahaja apabila anda tidak pasti sama ada nilai pemboleh ubah objek perlu diubah tetapi anda mahu mengelakkan kelas lain mengubah nilai. Gunakan kata kunci statik apabila anda mahu ahli kelas tergolong dalam jenis dan bukan contoh jenisnya.

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