Rumah >pembangunan bahagian belakang >C++ >Casting vs 'As' Kata kunci dalam C#: Bilakah saya harus menggunakan yang mana?
c# untuk penukaran wajib dan "sebagai" perbandingan kata kunci: Bilakah ia akan digunakan?
Apabila memproses antara muka, pemaju sering menggunakan penukaran mandatori atau penukaran jenis objek untuk mengendalikan objek. Walau bagaimanapun, terdapat dua kaedah yang berbeza untuk melakukan penukaran ini: penukaran paksa dan menggunakan kata kunci "sebagai". Adakah terdapat perbezaan antara kedua -dua kaedah ini? Jika ya, bagaimanakah mereka boleh mempengaruhi pelaksanaan dan prestasi program?
memahami penukaran mandatori
Penukaran mandatori melibatkan jenis sasaran sebelum meletakkan sasaran sebelum rujukan objek, dalam kurungan, objek itu secara eksplisit ditukar dari satu jenis ke yang lain. Contohnya:
meneroka "sebagai" kata kunci
<code class="language-csharp">IMyInterface _MyObj = new MyClass(); MyClass _myCls1 = (MyClass)_MyObj;</code>
"sebagai" kata kunci melakukan jenis bukan -invasive. Walau bagaimanapun, jika penukaran berjaya, "sebagai" akan mengembalikan objek penukaran. Berbanding dengan penukaran mandatori, "sebagai" menyediakan kaedah alternatif. Sebaliknya, kembali rujukan null.
perbandingan kos
Pada masa lalu, terdapat perbezaan dalam perbezaan prestasi antara penukaran dan penggunaan kata kunci "sebagai". Operasi penukaran paksa lebih cepat kerana ia hanya melibatkan satu penukaran jenis satu. Walau bagaimanapun, dengan kemajuan pengkompil JIT moden, kecekapan kata kunci "sebagai" telah setinggi penukaran mandatori. Kedua -dua teknologi dapat dengan cepat melaksanakan penukaran jenis, jadi mereka boleh mengabaikan prestasi dari segi prestasi.
<code class="language-csharp">IMyInterface _MyObj = new MyClass(); MyClass _myCls2 = _MyObj as MyClass; // 如果转换不成功,_myCls2 将为 null</code>Pilih kaedah terbaik
Walaupun prestasi tidak lagi menjadi faktor penentu, aspek lain akan mempengaruhi pilihan antara penukaran mandatori dan "sebagai":
Penukaran Keselamatan:
Apabila memproses pembolehubah, disyorkan untuk menggunakan "sebagai" kerana jenis pembolehubah boleh berubah antara ujian dan penukaran. Ini mengurangkan risiko yang tidak normal yang disebabkan oleh penukaran tidak sah. Pemisahan titik berikut:
"Sebagai" Kata kunci membenarkan langkah -langkah ujian dan penukaran untuk dipisahkan. Ini meningkatkan kebolehbacaan kod dan mengurangkan kemungkinan kesilapan kecil.
Atas ialah kandungan terperinci Casting vs 'As' Kata kunci dalam C#: Bilakah saya harus menggunakan yang mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!