Di Visual Studio, Bagaimana cara memperlihatkan semua kelas yang diwarisi dari kelas dasar?
Misalnya , dalam ASP.NET MVC ada beberapa jenis ' ActionResult ' - dan mereka semua mewarisi dari / mengimplementasikan kelas dasar ActionResult
.
Sepertinya kecuali Anda hanya 'tahu' itu View
dan Json
adalah ActionResult
tipe yang valid , tidak ada cara Anda dapat dengan mudah menemukan informasi ini.
Tolong buktikan saya salah.
Apakah ada sesuatu di browser objek yang membuatnya mudah ditemukan?
Saya bahkan menerima saran alat di luar Visual Studio untuk menemukan informasi ini tentang berbagai kelas. Misalnya: apakah ada sesuatu di Resharper yang akan membantu saya?
visual-studio
class
abstract-class
Dan Esparza
sumber
sumber
Jawaban:
Tentu, Resharper dapat melakukan ini. Dan banyak lagi.
Cukup klik kanan pada ketik nama di sembarang tempat dan pilih "Go To Inheritor" di menu konteks. "Go To Inheritor" juga dapat diterapkan pada metode untuk menavigasi ke penggantian dan implementasi metode antarmuka. Untuk antarmuka Anda bisa memanggil "Temukan Penggunaan Lanjutan" lagi, cukup klik kanan) di mana menemukan semua perluasan dan implementasi. Untuk tipe - tipe turunan. Dan fitur favorit saya - klik dengan menahan Kontrol pada semua jenis / metode untuk menavigasi ke deklarasi.
Saya pikir ini adalah alat yang harus dimiliki untuk pengembang .net.
Di Resharper 9.2, pada jenis apa pun dalam kode sumber, klik kanan "Temukan Penggunaan Tingkat Lanjut", pilih Temukan = "Berasal" dan Cakupan = "Solusi dan Perpustakaan".
Misalnya, untuk menemukan semua pewaris (baik di perpustakaan dan kode Anda) dari beberapa kelas dasar dalam DLL yang disertakan dari vendor mana pun, deklarasikan variabel dalam kode Anda dengan kelas dasar itu. Kemudian klik kanan pada nama kelas dasar yang baru saja Anda ketik.
sumber
Untuk VS2012,
sumber
Anda tidak perlu Reflektor untuk ini - tampilan "Class Diagram" Visual Studio akan memungkinkan Anda dengan mudah menemukan semua kelas turunan untuk kelas tertentu juga. Klik kanan pada kelas di "Tampilan Kelas" dan pilih "Lihat Diagram Kelas". Jika diagram tidak menunjukkan tingkat detail yang Anda inginkan untuk hierarki, klik kanan pada kotak untuk kelas dalam diagram, dan pilih "Tampilkan Kelas yang Diperoleh".
Mungkin tidak searah Resharper, tetapi ini merupakan opsi jika Anda belum memiliki R #.
Sayangnya, saya tidak yakin versi tertentu dari Visual Studio yang memilikinya.
sumber
Ini adalah jawaban yang paling tidak malas (saya hanya bangga dengan jawaban ini :)
Saya tidak punya ReSharper, sudah pernah mencobanya tetapi tidak mau membelinya. Saya mencoba diagram kelas tetapi tidak praktis sama sekali karena diagram hierarki menjangkau dunia 3 kali lipat dan layar laptop saya tidak memiliki lebar yang tak terbatas. Jadi solusi alami dan mudah saya adalah menulis beberapa kode Windows Forms untuk beralih pada tipe-tipe dalam perakitan dan menggunakan refleksi untuk menambahkan node ke tampilan struktur pohon, sebagai berikut:
anggap Anda memiliki kotak teks, tampilan hierarki dan hal-hal lain yang diperlukan pada formulir di mana kode ini berjalan
sumber
AppDomain.CurrentDomain.GetAssemblies()
? Lihatlah ini: stackoverflow.com/questions/851248/…Mulai dari 'Visual Studio 2015 Pembaruan 1' Anda cukup klik kanan pada nama kelas di editor kode kelas dan kemudian pilih 'Go To Implementation "dari menu konteks: dengan Ctrl + F12 sebagai pintasan.
Lihat https://blogs.msdn.microsoft.com/dotnet/2015/11/30/whats-new-in-visual-studio-update-1-for-net-managed-languages/ untuk rincian lebih lanjut.
sumber
Belum ada yang menyebutkan ini, jadi saya akan menambahkannya.
Jetbrains dotPeek adalah decompiler .NET gratis yang memiliki kekuatan untuk menampilkan informasi ini dengan mudah.
Unduh gratis: http://www.jetbrains.com/decompiler/
Jetbrains adalah perusahaan yang membuat Resharper.
Langkah-langkah untuk menemukan kelas turunan:
ActionResult
ActionResult
deklarasi kelas, klik kanan dan pilih 'Simbol yang diturunkan'sumber
Dengan asumsi Anda telah menginstal ulang Resharper : dengan kursor di kelas / antarmuka, klik kanan - Inspect - Hierarchies
Ini menunjukkan subclass, implementasi, dan superclasses.
sumber
Di Visual Studio Class View navigasikan ke kelas yang Anda minati dan temukan basisnya dan kelas turunannya
sumber
Anda juga dapat menggunakan Reflektor .
Muat semua rakitan yang Anda inginkan terlihat, navigasikan ke suatu jenis, dan perluas item Jenis yang Diperoleh.
Anda juga dapat melakukan ini di Browser Obyek, tetapi karena alasan tertentu VS2008 hanya dapat melakukannya di salah satu tampilan .Net Framework. (VS2010 Beta 2 dapat melakukannya dalam tampilan apa pun)
sumber
Untuk kelas Kerangka, saya menggunakan Perpustakaan MSDN. Bagian Hierarki Warisan berjalan di kedua arah. Memang tidak banyak membantu untuk beberapa perpustakaan pesta 3d.
sumber
Dengan bantuan ReSharper (versi 2016.1.2), cukup Ctrl+ Alt+ Clickpada Kelas Dasar. Anda akan melihat sesuatu seperti ini:
sumber
Seret kelas atau namespace dari objek Explorer ke file Kelas Digram .
Bagaimana cara mendapatkan diagram kelas yang bagus untuk kelas .net?
sumber
pilih jenis dan klik kanan melihat sesuatu --- tampilkan pada peta kode - pilih pilih itu menghasilkan formet gambar untuk mereka yang mewarisi jenis ini sebagai gambar yang sangat bagus seperti format file .dgml itu memberikan lebih banyak info tentang jenis
sumber
Sebagai pilihan bagi mereka yang menggunakan Visual Assist, Anda juga dapat menekan Shift + ALT + G (sementara tanda sisipan ada pada nama kelas) untuk memunculkan menu konteks "Terkait Goto", dan jika ada kelas turunan Anda akan mendapatkan submenu untuk itu daftar mereka semua dan bahkan menunjukkan struktur warisan di antara kelas-kelas turunan.
sumber
Cukup kode itu.
sumber
jika Anda meningkatkan ke VS2012 Anda dapat menggunakan "Peta Kode".
Klik kanan pada jenis yang Anda ingin melihat hierarki warisan dan pilih "Tambahkan ke kode peta". Kemudian dalam tampilan peta kode Anda dapat memperluas node dan klik kanan untuk memilih "Tampilkan kelas yang diturunkan / Basis". Sayangnya tidak berfungsi untuk .NET kelas yang disediakan.
sumber
Untuk Visual Studio 2012 ( Tanpa ReSharper )
sumber
Pembaruan 2020:
Anda dapat menggunakan Peta Kode Visual Studio yang berfungsi cukup baik.
Cukup klik kanan pada kelas dan menavigasi ke:
Code Map
>Show Related Items on Code Map
>Show All Derived Types
catatan:
PS Sebaiknya simpan versi Perusahaan (atau setidaknya versi Pratinjau) di mesin Anda, karena memiliki banyak alat yang sangat berguna yang tidak termasuk dalam edisi lain.
sumber
ActionResult
(contoh OP)Cara yang sangat sederhana untuk melakukan ini, adalah mencari
: Classname
di "Temukan dan Ganti Jendela" (CTRL + F) dan gunakan Opsi "Temukan Opsi / Cocokkan seluruh kata". Anda hanya akan menemukan kelas-kelas yang diwarisi.sumber
class DDerived : IInterface, BBase