Mungkin cara terbaik dan termudah untuk mencapai apa yang Anda kejar adalah dengan menggunakan alat analisis kode bawaan dengan Visual Studio untuk menemukan dan membawa Anda langsung ke kode mati dan anggota yang tidak digunakan.
Untuk efek ini, saya membuat file ruleset analisis kode baru (Via File-> New-> File , memastikan Umum di panel kiri dipilih dan gulir ke bawah untuk menemukan Kode Analisis Aturan Set , memberikan nama file, kemudian mencari dan memilih aturan di bawah ini). Lihat di bawah untuk mengetahui isi file ruleset yang dapat Anda salin, dan rekatkan ke file baru dengan ekstensi .ruleset untuk digunakan.
Diberikan file ruleset, orang dapat mengklik kanan pada file proyek di panel Solution Explorer , dan pilih Properties . Di jendela properti proyek, klik tab Analisis Kode di panel kiri, lalu klik Buka untuk meramban ke lokasi file .ruleset. Jika Anda pergi ke properti file solusi (sebagai lawan file proyek), Anda dapat mengatur file analisis kode untuk setiap proyek dalam solusi di satu tempat (di bawah Pengaturan Analisis Kode , dan menggunakan drop-down di sana untuk memilih CATATAN: Anda sebelumnya harus sudah meramban ke file ruleset agar muncul di drop-down di jendela properti ini, namun).
Kemudian Anda cukup menjalankan analisis kode pada proyek / solusi (Via Analisis-> Jalankan Analisis Kode Pada Solusi -OR- Alt + F11 ) dan itu akan kembali sebagai peringatan, metode yang tidak direferensikan atau anggota yang tidak digunakan yang ditemukannya. Ia bahkan akan menemukan metode yang dirujuk oleh suatu metode, yang dirinya sendiri tidak memiliki referensi di tempat lain.
Namun berhati-hatilah, karena salah satu cara analisis kode untuk kode mati dapat membuat Anda salah, adalah jika referensi tersebut 'disembunyikan' dengan hanya memanggil metode tersebut melalui delegasi, dan tentu saja, refleksi.
Aturan untuk mendeteksi kode mati, khususnya, adalah:
- Metode pribadi yang tidak dipanggil dari kode lain mana pun (CA1811)
- Variabel lokal yang tidak digunakan (CA1804)
- Bidang pribadi yang tidak digunakan (CA1823)
- Parameter yang tidak digunakan (CA1801)
- Kelas internal yang tidak dipakai dari kode lain mana pun (CA1812).
- Kode mati dalam saklar terbatas bitwise-ATAU (C6259)
Di bawah ini adalah isi dari file .ruleset yang dapat diperoleh dengan mengikuti langkah-langkah di atas, untuk kenyamanan Anda. Anda cukup menyalin XML di bawah ini, menempelkannya ke notepad ++, simpan di suatu tempat dengan ekstensi .ruleset , telusuri dan gunakan seperti dijelaskan di atas:
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0">
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1801" Action="Warning" />
<Rule Id="CA1804" Action="Warning" />
<Rule Id="CA1811" Action="Warning" />
<Rule Id="CA1812" Action="Warning" />
<Rule Id="CA1823" Action="Warning" />
</Rules>
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<Rule Id="C6259" Action="Warning" />
</Rules>
</RuleSet>