Untuk alasan apa saya harus menjaga bagian "menggunakan" tetap bersih di C #?


11

Suatu ketika ketika saya refactoring kode saya, saya pergi IDE ke bagian menggunakan kelas C # saya, dan membersihkan ruang nama yang tidak digunakan dan duplikat ruang nama , dan mengurutkan semuanya.

Pasangan saya (pemrograman pasangan) menanyakan alasannya. Saya tidak tahu mengapa saya melakukan itu. Saya melakukannya karena kebiasaan saya untuk menjaga semua kode saya bersih dan rapi. Maksud saya, saya mengatakan kepadanya bahwa memiliki kode pembersih adalah ide yang baik secara umum, tetapi tentu saja alasan itu bukan pembenaran yang baik, karena saya bahkan tidak akan repot-repot menghabiskan waktu saya di bagian penggunaan halaman kode C # mana pun.

Karena berkali-kali Anda memindahkan kelas atau enum (atau tipe pada umumnya) dari satu namespace ke namespace lain, dan ini menambahkan pernyataan menggunakan baru ke kode Anda (baik secara manual dengan membuka jendela kode dan menulis pernyataan menggunakan sendiri, atau melalui editor menggunakan kombinasi Alt+ Ctrl+ F10), dan karena pernyataan penggunaan baru ini akan ditambahkan ke bagian akhir penggunaan , yang membuatnya tidak diurutkan secara alfabet, dan karena kompiler tidak pernah mengeluh tentang masalah ini, mengapa kita harus peduli untuk membuat ini bagian bersih dan rapi? Alasan apa yang mungkin kita miliki?


5
Ini sudah ditanyakan dan dijawab di Stack Overflow - stackoverflow.com/questions/4163320/unused-using-statements (dan dua pertanyaan terkait di bilah samping) - pada dasarnya tidak ada alasan untuk khawatir tentang penggunaan yang tidak digunakan
ChrisF

Referensi hebat @ ChrisF, saya pikir saya mendapat jawaban di sana. Mungkin Anda harus bergabung dengan pertanyaan itu, atau melakukan hal serupa. :)
Saeed Neamati


Jawaban:


22

Tidak ada perbedaan kinerja, tidak peduli berapa banyak usingarahan yang Anda miliki.

Tapi saya pikir masuk akal untuk menjaga mereka tetap bersih karena dua alasan:

  1. Jika Anda melihat file usings, Anda dapat melihat dependensi apa yang dimiliki file tersebut. Ini dapat membantu Anda mengetahui apa tipe yang dilakukan dalam file. Jika Anda melakukan ini, memiliki usings dalam urutan tertentu membantu Anda melihatnya lebih cepat.
  2. Jika Anda memiliki terlalu banyak using, ini mungkin menunjukkan bahwa Anda memiliki pemisahan keprihatinan yang buruk dan bahwa jenis (-lokasi) dalam file tersebut melakukan terlalu banyak.

Kedua hal ini tidak terlalu penting, jadi Anda tidak perlu terlalu khawatir. Tapi secara pribadi, saya pikir itu layak menjaga usingkebersihan.


8

Alasan utama saya untuk membersihkan antara pernyataan yang menggunakan adalah:

  • Semakin banyak menggunakan pernyataan, semakin banyak kemungkinan penamaan konflik yang berarti Anda harus memasukkan bagian namespace dalam kode untuk menghindari ambiguitas.
  • IntelliSense disaring berdasarkan semua majelis dalam pernyataan penggunaan Anda. Karena itu jika Anda membersihkannya dari pernyataan yang tidak perlu, Anda akan membantu diri Anda sendiri dengan membantu keakuratan IntelliSense.

Di atas semua itu saya setuju dengan jawaban lain yang meningkatkan keterbacaan dan membuatnya lebih mudah untuk mendapatkan gambaran tentang apa yang dilakukan oleh tipe-tipe di kelas.


Saya tidak mengerti mengapa ini bukan pilihan yang lebih tinggi. Konflik Namespace adalah masalah yang sah.
RubberDuck

7

“Kesempurnaan dicapai bukan ketika tidak ada yang tersisa untuk ditambahkan, tetapi ketika tidak ada lagi yang tersisa untuk diambil” - Antoine de Saint-Exupery

Setiap kali Anda dapat menghapus sesuatu yang tidak perlu dan tidak menambah pemahaman, lakukanlah (keterbacaan layak kode tambahan).


Pepatah agung. Saya menyukai ide itu. +1;)
Saeed Neamati

4

Itu hanya menghilangkan noise dari sinyal. Lebih sedikit noise berarti lebih mudah untuk menerima sinyal, yaitu memahami maksud kode.

Sebagai penghasil kebisingan, ini sangat kecil.


2
  • Ini meningkatkan keterbacaan kode Anda.
  • Biasanya tidak masuk akal untuk mengikuti panduan ini jika Anda hanya memiliki sedikit pernyataan

  • Lebih masuk akal untuk memisahkan menggunakan pernyataan menjadi beberapa bagian.

Sebagai contoh:

    using System.Web;

    using MyPlatform.FooX;        
    using MyPlatform.FooY;

    using MyFramework.Helpers;        
    using MyFramework.Extentions;

Jika saya melihat kelasnya, maka saya dapat langsung melihat bahwa kelas yang diberikan menggunakan perakitan System.Web, serta platform dan kerangka kerja kami. Ini memberi saya gambaran kasar tentang ketergantungan dan kerumitannya.

Anda kemudian dapat mengambil langkah ini lebih jauh dan memesan pernyataan, tapi saya pikir itu membuat menggunakan pernyataan kurang mudah dibaca, jadi saya tidak akan merekomendasikan ini.

using MyFramework.Extentions;
using MyFramework.Helpers;

using System.Web;

using MyPlatform.FooX;        
using MyPlatform.FooY;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.