Rumah >pembangunan bahagian belakang >C++ >Casting di C#: Bilakah menggunakan 'sebagai' vs pemutus eksplisit?
Dalam pengaturcaraan yang berorientasikan objek, penukaran jenis objek adalah operasi biasa. CLR menyediakan dua kaedah penukaran utama: 'sebagai' kata kunci dan penukaran eksplisit.
' sebagai 'kata kunci
'sebagai' penukaran jenis pelaksanaan kata kunci, Pengganti mengembalikan objek penukaran, dan gagal mengembalikan NULL. Ia biasanya digunakan untuk menukar objek ke subkelas tertentu atau pelaksanaan antara muka. Contohnya:
Penukaran Berbeza
<code class="language-csharp">object obj = new MyClass(); MyClass cls = obj as MyClass;</code>
Ekspresikan penggunaan tatabahasa
. Tukar objek ke jenis yang ditentukan, dan penukaran tidak sah dan membuang pengecualian. Contohnya:
Pertimbangan Prestasi (cast-type)
<code class="language-csharp">object obj = new MyClass(); MyClass cls = (MyClass)obj;</code>Secara umum, 'sebagai' kata kunci adalah lebih selamat kerana ia mengembalikan null apabila penukaran gagal untuk mengelakkan kesilapan runtime. Hanya apabila penukaran berjaya dan prestasi penting, penukaran harus digunakan.
perbezaan semantik
Perbezaan utama antara kedua -dua kaedah adalah: 'sebagai' jenis objek kata kunci, dan penukaran tidak sah dan mengembalikan null; Perbezaan ini penting apabila jenis objek tidak menentu (seperti menggunakan refleksi).
kaedah yang disyorkan
Ia biasanya disyorkan untuk menggunakan 'sebagai' kata kunci bukannya penukaran eksplisit. Ia lebih selamat dan kehilangan prestasi tidak penting. Ia amat berguna apabila jenis objek adalah perubahan pra -known atau dinamik.
Atas ialah kandungan terperinci Casting di C#: Bilakah menggunakan 'sebagai' vs pemutus eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!