Jadual Kandungan
Contoh
Output
Rumah pembangunan bahagian belakang Tutorial C#.Net Apakah kegunaan pembina statik dalam C#?

Apakah kegunaan pembina statik dalam C#?

Aug 23, 2023 pm 10:25 PM

Apakah kegunaan pembina statik dalam C#?

Pembina statik digunakan untuk memulakan sebarang data statik, atau melaksanakan operasi tertentu Kandungan yang perlu diterjemahkan ialah: Operasi yang dilakukan secara automatik sebelum panggilan pertama Apabila contoh dibuat atau mana-mana ahli statik dirujuk.

Pembina statik sangat berguna apabila membuat kelas pembalut untuk kod tidak terurus, Apabila pembina boleh memanggil kaedah LoadLibrary. Perkara yang sama berlaku untuk pembina statik Tempat yang sesuai untuk menguatkuasakan parameter jenis yang tidak boleh disemak pada masa jalan Kekangan disemak pada masa penyusunan.

Pembina statik mempunyai sifat berikut −

  • Pembina statik tidak menerima pengubah suai atau parameter akses.

  • Sesuatu kelas atau struktur hanya boleh mempunyai satu pembina statik.

  • Pembina statik tidak boleh diwarisi atau terlebih beban.

  • Pembina statik tidak boleh dipanggil terus, ia hanya boleh dipanggil melalui kaedah lain

Masa Jalan Bahasa Biasa (CLR). Ia akan dipanggil secara automatik.
  • Pengguna tidak mempunyai kawalan ke atas apabila pembina statik dilaksanakan program.

  • Pembina statik dipanggil secara automatik sebelum memulakan kelas Contoh pertama dibuat atau merujuk mana-mana ahli statik. statik Pembina akan dijalankan sebelum pembina contoh. jenis pembina statik Dipanggil apabila kaedah statik diberikan kepada acara atau perwakilan dan dipanggil Dan bukan apabila ditugaskan. Jika pemula pembolehubah medan statik wujud dalam kelas pembina statik, ia akan dilaksanakan dalam susunan teks dalam Kelas dengan pembina statik yang akan dilaksanakan dalam susunan teks Mereka muncul dalam pengisytiharan kelas sebelum pelaksanaan Jika anda tidak menyediakan pembina statik untuk memulakan medan statik, semua medan statik akan dimulakan secara automatik pada akses pertama dalam susunan di mana ia diisytiharkan.

  • Medan dimulakan kepada nilainya yang disenaraikan dalam Nilai Lalai dalam C# Jika pembina statik melemparkan pengecualian, ia tidak akan dipanggil oleh masa jalan kali kedua, dan jenis itu akan kekal tidak dimulakan sepanjang hayatnya Domain aplikasi tempat program anda dijalankan. Lazimnya, a TypeInitializationException berlaku apabila pembina statik dilemparkan Tidak dapat membuat instantiate jenis atau apabila pengecualian yang tidak dikendalikan berlaku Pembina statik. Untuk pembina statik tersirat yang tidak ditakrifkan secara eksplisit Ditakrifkan dalam kod sumber, penyelesaian masalah mungkin memerlukan pemeriksaan Kod bahasa perantaraan (IL).
  • Kehadiran pembina statik akan menghalang penambahan Harta jenis BeforeFieldInit. Ini mengehadkan pengoptimuman masa jalan.

  • Sesuatu medan yang diisytiharkan sebagai statik baca sahaja hanya boleh ditetapkan sebagai sebahagian daripadanya dalam pengisytiharan atau pembina statik. Apabila tiada pembina statik yang jelas Kandungan yang perlu diterjemahkan ialah: diperlukan, mulakan medan statik pada pengisytiharan, bukannya melalui statik Kandungan yang perlu diterjemahkan ialah: diperlukan, mulakan medan statik pada pengisytiharan, bukannya melalui statik Pembina digunakan untuk pengoptimuman masa jalan yang lebih baik.

  • Contoh

    Demonstrasi Langsung

    using System;
    namespace DemoApplication{
       public class Program{
          static void Main(string[] args){
             Car user = new Car();
             Car user1 = new Car();
             Console.ReadLine();
          }
       }
       public class Car{
          static Car(){
             Console.WriteLine("Static constructor called");
          }
          public Car(){
             Console.WriteLine("Default constructor called");
          }
       }
    }
    Salin selepas log masuk

    Output

    Static constructor called
    Default constructor called
    Default constructor called
    Salin selepas log masuk

    Dalam contoh di atas, kita dapat melihat bahawa pembina statik dipanggil sekali sahaja.

    Contoh

    Demonstrasi dalam talian

    using System;
    using System.Threading;
    namespace DemoApplication{
       public class Car{
          protected static readonly DateTime globalStartTime;
          protected int RouteNumber { get; set; }
          static Car(){
             globalStartTime = DateTime.Now;
             Console.WriteLine($"Static constructor called. Global start time:
             {globalStartTime.ToLongTimeString()}");
          }
          public Car(int routeNum){
             RouteNumber = routeNum;
             Console.WriteLine($"Car {RouteNumber} is created.");
          }
          public void Drive(){
             TimeSpan elapsedTime = DateTime.Now - globalStartTime;
             Console.WriteLine($"Car {this.RouteNumber} is starting its route
             {elapsedTime.Milliseconds} minutes after global start time
             {globalStartTime.ToShortTimeString()}.");
          }
       }
       class TestCar{
          static void Main(){
             Car car1 = new Car(1);
             Car car2 = new Car(2);
             car1.Drive();
             Thread.Sleep(25);
             car2.Drive();
             Console.ReadLine();
          }
       }
    }
    Salin selepas log masuk

    Output

    Static constructor called. Global start time:
    7:09:06 AM
    Car 1 is created.
    Car 2 is created.
    Car 1 is starting its route25 minutes after global start time7:09 AM.
    Car 2 is starting its route50 minutes after global start time7:09 AM.
    Salin selepas log masuk

    Atas ialah kandungan terperinci Apakah kegunaan pembina statik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Cara menggunakan pelbagai simbol dalam bahasa C Cara menggunakan pelbagai simbol dalam bahasa C Apr 03, 2025 pm 04:48 PM

    Kaedah penggunaan simbol dalam bahasa C meliputi aritmetik, tugasan, syarat, logik, pengendali bit, dan lain-lain. Operator aritmetik digunakan untuk operasi matematik asas, pengendali tugasan digunakan untuk penugasan dan penambahan, penolakan, pendaraban dan tugasan pembahagian, pengendali keadaan digunakan untuk operasi yang digunakan untuk operasi yang digunakan untuk Operasi Bit untuk Penunjuk null, penanda akhir fail, dan nilai bukan angka.

    Apakah peranan char dalam c strings Apakah peranan char dalam c strings Apr 03, 2025 pm 03:15 PM

    Dalam C, jenis char digunakan dalam rentetan: 1. Simpan satu watak; 2. Gunakan array untuk mewakili rentetan dan berakhir dengan terminator null; 3. Beroperasi melalui fungsi operasi rentetan; 4. Baca atau output rentetan dari papan kekunci.

    Cara Mengendalikan Watak Khas dalam Bahasa C Cara Mengendalikan Watak Khas dalam Bahasa C Apr 03, 2025 pm 03:18 PM

    Dalam bahasa C, watak -watak khas diproses melalui urutan melarikan diri, seperti: \ n mewakili rehat garis. \ t bermaksud watak tab. Gunakan urutan melarikan diri atau pemalar watak untuk mewakili watak khas, seperti char c = '\ n'. Perhatikan bahawa backslash perlu melarikan diri dua kali. Platform dan penyusun yang berbeza mungkin mempunyai urutan melarikan diri yang berbeza, sila rujuk dokumentasi.

    Perbezaan antara char dan wchar_t dalam bahasa c Perbezaan antara char dan wchar_t dalam bahasa c Apr 03, 2025 pm 03:09 PM

    Dalam bahasa C, perbezaan utama antara char dan wchar_t adalah pengekodan aksara: char menggunakan ASCII atau memanjangkan ASCII, WCHAR_T menggunakan unicode; Char mengambil 1-2 bait, wchar_t mengambil 2-4 bait; Char sesuai untuk teks bahasa Inggeris, WCHAR_T sesuai untuk teks berbilang bahasa; CHAR disokong secara meluas, WCHAR_T bergantung kepada sama ada penyusun dan sistem operasi menyokong Unicode; Char adalah terhad dalam pelbagai watak, WCHAR_T mempunyai pelbagai watak yang lebih besar, dan fungsi khas digunakan untuk operasi aritmetik.

    Perbezaan antara multithreading dan asynchronous C# Perbezaan antara multithreading dan asynchronous C# Apr 03, 2025 pm 02:57 PM

    Perbezaan antara multithreading dan asynchronous adalah bahawa multithreading melaksanakan pelbagai benang pada masa yang sama, sementara secara tidak sengaja melakukan operasi tanpa menyekat benang semasa. Multithreading digunakan untuk tugas-tugas yang berintensifkan, sementara asynchronously digunakan untuk interaksi pengguna. Kelebihan multi-threading adalah untuk meningkatkan prestasi pengkomputeran, sementara kelebihan asynchronous adalah untuk tidak menghalang benang UI. Memilih multithreading atau asynchronous bergantung kepada sifat tugas: tugas-tugas intensif pengiraan menggunakan multithreading, tugas yang berinteraksi dengan sumber luaran dan perlu menyimpan respons UI menggunakan asynchronous.

    Cara menukar char dalam bahasa c Cara menukar char dalam bahasa c Apr 03, 2025 pm 03:21 PM

    Dalam bahasa C, penukaran jenis char boleh ditukar secara langsung kepada jenis lain dengan: Casting: Menggunakan aksara pemutus. Penukaran Jenis Automatik: Apabila satu jenis data dapat menampung jenis nilai lain, pengkompil secara automatik menukarkannya.

    Apakah fungsi jumlah bahasa C? Apakah fungsi jumlah bahasa C? Apr 03, 2025 pm 02:21 PM

    Tiada fungsi jumlah terbina dalam dalam bahasa C, jadi ia perlu ditulis sendiri. Jumlah boleh dicapai dengan melintasi unsur -unsur array dan terkumpul: Versi gelung: SUM dikira menggunakan panjang gelung dan panjang. Versi Pointer: Gunakan petunjuk untuk menunjuk kepada unsur-unsur array, dan penjumlahan yang cekap dicapai melalui penunjuk diri sendiri. Secara dinamik memperuntukkan versi Array: Perlawanan secara dinamik dan uruskan memori sendiri, memastikan memori yang diperuntukkan dibebaskan untuk mengelakkan kebocoran ingatan.

    Cara menggunakan array char dalam bahasa c Cara menggunakan array char dalam bahasa c Apr 03, 2025 pm 03:24 PM

    Arus char menyimpan urutan watak dalam bahasa C dan diisytiharkan sebagai array_name char [saiz]. Unsur akses diluluskan melalui pengendali subskrip, dan elemen berakhir dengan terminator null '\ 0', yang mewakili titik akhir rentetan. Bahasa C menyediakan pelbagai fungsi manipulasi rentetan, seperti strlen (), strcpy (), strcat () dan strcmp ().

    See all articles