Sebagai contoh, saya jarang membutuhkan:
using System.Text;
tapi selalu ada di sana secara default. Saya menganggap aplikasi akan menggunakan lebih banyak memori jika kode Anda mengandung arahan yang tidak perlu . Tetapi apakah ada hal lain yang harus saya waspadai?
Juga, apakah itu membuat perbedaan apa pun jika menggunakan direktif yang sama digunakan hanya dalam satu file vs sebagian besar / semua file?
Sunting: Perhatikan bahwa pertanyaan ini bukan tentang konsep yang tidak terkait yang disebut pernyataan menggunakan , yang dirancang untuk membantu seseorang mengelola sumber daya dengan memastikan bahwa ketika suatu objek keluar dari ruang lingkup, metode IDisposable.Dispose -nya disebut. Lihat Penggunaan "menggunakan" di C # .
sumber
Ada yang beberapa alasan untuk menghapus yang tidak terpakai menggunakan (s) / ruang nama, selain coding preferensi:
Apa yang tidak akan dilakukan menghapus ruang nama yang tidak digunakan :
Rakitan yang dihasilkan sama dengan atau tanpa penggunaan yang tidak digunakan dilepas.
sumber
using
Arahan yang tidak digunakan dalam.cs
file dapat mencegah Anda menghapus beberapa referensi perakitan (jika tidak digunakan) dari.csproj
proyek Anda . Jika Anda memiliki "solusi" dari banyak proyek, referensi yang tidak perlu antara proyek akan memaksa proyek untuk dikompilasi dalam urutan tertentu padahal sebenarnya mereka independen dan dapat dikompilasi secara paralel. Jadi hapususing
arahan yang tidak digunakan sebelum Anda memeriksa referensi proyek yang tidak digunakan dalam beberapa solusi proyek.Kode kebersihan adalah penting.
Kita mulai merasakan bahwa kode itu mungkin tidak terawat dan berada di jalur alis ketika kita melihat penggunaan berlebihan. Intinya, ketika saya melihat beberapa pernyataan yang tidak digunakan, bendera kuning muncul di bagian belakang otak saya mengatakan kepada saya untuk "melanjutkan dengan hati-hati." Dan membaca kode produksi seharusnya tidak pernah memberi Anda perasaan itu.
Jadi bersihkan barangmu. Jangan ceroboh. Menginspirasi kepercayaan diri. Buat kode Anda cantik. Berikan dev lain itu perasaan hangat-kabur.
sumber
Organize Usings -> Remove and Sort
sesekali. BTW, bagi saya dua opsi teratasOrganize Usings
tidak ada artinya. Saya berbicara tentang VS2013 btw.Tidak ada konstruksi IL yang sesuai
using
. Dengan demikian,using
pernyataan tidak menambah memori aplikasi Anda, karena tidak ada kode atau data yang dihasilkan untuk itu.Using
digunakan pada waktu kompilasi hanya untuk keperluan penyelesaian nama tipe pendek menjadi nama tipe yang memenuhi syarat. Jadi, satu-satunya efek negatif yang tidak perluusing
dapat memperlambat waktu kompilasi sedikit dan mengambil sedikit lebih banyak memori selama kompilasi. Saya tidak akan khawatir tentang itu.Dengan demikian, satu-satunya efek negatif nyata dari memiliki
using
pernyataan yang tidak Anda butuhkan adalah pada intellisense, karena daftar kecocokan potensial untuk penyelesaian saat Anda mengetik meningkat.sumber
Anda mungkin memiliki bentrokan nama jika Anda memanggil kelas Anda seperti kelas (yang tidak digunakan) di namespace. Dalam kasus System.Text, Anda akan memiliki masalah jika Anda mendefinisikan kelas bernama "Encoder".
Bagaimanapun ini biasanya masalah kecil, dan terdeteksi oleh kompiler.
sumber
Aplikasi Anda tidak akan menggunakan lebih banyak memori. Untuk kompiler untuk menemukan kelas yang Anda gunakan dalam file kode. Itu benar-benar tidak ada salahnya tidak bersih.
sumber
Ini preferensi pribadi terutama. Saya membersihkannya sendiri (Resharper melakukan pekerjaan yang baik untuk memberi tahu saya ketika ada pernyataan yang tidak dibutuhkan)
Orang bisa mengatakan bahwa itu mungkin mengurangi waktu untuk mengkompilasi, tetapi dengan kecepatan komputer dan kompiler hari ini tidak akan membuat dampak yang jelas.
sumber
Meninggalkan
using
arahan ekstra tidak masalah. Ada sedikit nilai dalam menghapusnya, tetapi tidak banyak. Misalnya, itu membuat daftar penyelesaian IntelliSense saya lebih pendek, dan karenanya lebih mudah dinavigasi.Majelis yang dikompilasi tidak terpengaruh oleh
using
arahan asing .Kadang-kadang saya menempatkan mereka di dalam
#region
, dan membiarkannya runtuh; ini membuat melihat file sedikit lebih bersih. IMO, ini adalah salah satu dari sedikit kegunaan baik#region
.sumber
#region
", jadi maksud Anda menggunakan#region
itu buruk dalam banyak hal?#region
adalah bau kode. Dikatakan terlalu banyak hal yang terjadi di kelas Anda.jika Anda ingin menjaga kode Anda tetap bersih,
using
pernyataan yang tidak digunakan harus dihapus dari file. manfaatnya tampak sangat jelas ketika Anda bekerja di tim kolaboratif yang perlu memahami kode Anda, berpikir semua kode Anda harus dipertahankan, lebih sedikit kode = lebih sedikit kerja, manfaatnya jangka panjang.sumber
Mereka hanya digunakan sebagai jalan pintas. Misalnya, Anda harus menulis: System.Int32 setiap kali jika Anda tidak memiliki Sistem yang menggunakan; di atas.
Menghapus yang tidak digunakan hanya membuat kode Anda terlihat lebih bersih.
sumber
Pernyataan menggunakan hanya membuat Anda dari kualifikasi jenis yang Anda gunakan. Saya pribadi suka membersihkannya. Sungguh itu tergantung pada bagaimana metrik loc digunakan
sumber
Hanya memiliki ruang nama yang benar-benar Anda gunakan memungkinkan Anda untuk menjaga kode Anda didokumentasikan.
Anda dapat dengan mudah menemukan bagian kode mana yang saling memanggil dengan alat pencarian apa pun.
Jika Anda memiliki ruang nama yang tidak digunakan ini berarti apa-apa, saat menjalankan pencarian.
Saya sedang mengerjakan pembersihan ruang nama sekarang, karena saya terus-menerus ditanya bagian aplikasi apa yang mengakses data yang sama dengan satu atau lain cara.
Saya tahu bagian mana yang mengakses data setiap jalan karena akses data dipisahkan oleh ruang nama misalnya langsung melalui database dan secara langsung melalui layanan web.
Saya tidak bisa memikirkan cara yang lebih sederhana untuk melakukan ini sekaligus.
Jika Anda hanya ingin kode Anda menjadi kotak hitam (untuk pengembang), maka ya itu tidak masalah. Tetapi jika Anda perlu mempertahankannya dari waktu ke waktu, ini adalah dokumentasi yang berharga seperti semua kode lainnya.
sumber
Pernyataan 'menggunakan' tidak memengaruhi kinerja karena hanya membantu dalam kualifikasi nama pengidentifikasi Anda. Jadi daripada harus mengetik, System.IO.Path.Combine (...) , Anda cukup mengetik, Path.Combine (...) jika Anda telah menggunakan System.IO .
sumber
Jangan lupa bahwa kompiler melakukan banyak pekerjaan untuk mengoptimalkan semuanya ketika membangun proyek Anda. Menggunakan yang digunakan di banyak tempat atau 1 tidak boleh melakukan yang berbeda setelah dikompilasi.
sumber