Nunit: Menghapus kelas Penjaga

Dibuat pada 24 Sep 2018  ·  4Komentar  ·  Sumber: nunit/nunit

ReSharper dan (dalam beberapa tahun terakhir) Visual Studio menyarankan untuk memasukkan ArgumentNullException dan pemeriksaan argumen serupa. Ini adalah memori otot yang saya telah memperkenalkan mereka secara tidak sengaja ke basis kode beberapa kali.

Melempar langsung lebih idiomatis C# dari sudut pandang analisis kontrol aliran. Kompiler C# memahami bahwa Anda tidak perlu mengembalikan nilai atau menginisialisasi variabel sebelum menggunakan atau memutus dari kasus sakelar jika Anda menggunakan throw daripada Guard . Pemeriksaan aliran nol ReSharper adalah dengan cara yang sama.

Juga, dengan C# 7.0, ekspresi melempar bisa menjadi nyaman. Misalnya, sintaks _foo = foo ?? throw new ArgumentNullException(nameof(Foo)); .

Apa pro atau kontra lain dari mengizinkan kontributor dan diri kita sendiri untuk melemparkan pengecualian secara langsung daripada menggunakan Guard?

Komentar yang paling membantu

Saya pribadi menyukai kelas penjaga - tetapi saya setuju ada masalah kemampuan menemukan. Saya biasanya menyarankannya kepada kontributor reguler, tetapi tidak menyebutkannya kepada kontributor satu kali. Saya tidak berpikir ini adalah area yang sangat kita butuhkan konsistensi, bukan? Saya senang melihatnya ketika itu ada, tetapi tidak khawatir ketika tidak ada.

Saya cukup apatis dengan hasil dari masalah ini, apa pun itu baik-baik saja bagi saya 😊

Semua 4 komentar

Pro utama untuk menggunakan kelas Guard adalah kemudahan penggunaan, jika saya mengingatnya dengan benar. Dalam C#-aware IDE, ini bukan lagi pilihan termudah bagi saya atau kontributor baru. Apakah kita membutuhkan konsistensi, semua satu cara atau semua cara lain? Konsistensi mengadu apa yang paling mudah bagi sebagian dari kita melawan (berpotensi) apa yang paling mudah bagi orang lain dari kita.

Saya pribadi menyukai kelas penjaga - tetapi saya setuju ada masalah kemampuan menemukan. Saya biasanya menyarankannya kepada kontributor reguler, tetapi tidak menyebutkannya kepada kontributor satu kali. Saya tidak berpikir ini adalah area yang sangat kita butuhkan konsistensi, bukan? Saya senang melihatnya ketika itu ada, tetapi tidak khawatir ketika tidak ada.

Saya cukup apatis dengan hasil dari masalah ini, apa pun itu baik-baik saja bagi saya 😊

Saya juga agak apatis tentang hal itu. Itu memang memberikan konsistensi dan penggunaan yang benar dari konstruktor pengecualian (Saya telah melihat pesan dan nama parameter mundur beberapa kali), tetapi itu juga menambahkan metode tambahan ke callstack. Plus, seperti yang Anda katakan, sintaks C# baru membuatnya lebih mudah.

Saya tidak yakin kita membutuhkan pembersihan grosir, tapi saya baik-baik saja dengan tidak memerlukannya.

Terima kasih semuanya, kedengarannya bagus!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat