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
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.
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"); } } }
Output
Static constructor called Default constructor called Default constructor called
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(); } } }
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.
Atas ialah kandungan terperinci Apakah kegunaan pembina statik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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.

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.

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.

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 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.

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.

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.

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 ().
