Jika saya memiliki kelas yang dipanggil MyProgram
, apakah ada cara untuk mengambil " MyProgram " sebagai string?
c#
reflection
deltanovember
sumber
sumber
nameof
operator baru .Saya ingin membuang ini untuk ukuran yang baik. Saya pikir cara @micahtan diposting lebih disukai.
sumber
nameof(MyProgram)
.Dengan C # 6.0, Anda dapat menggunakan
nameof
operator:sumber
Meskipun jawaban micahtan itu baik, itu tidak akan bekerja dengan metode statis. Jika Anda ingin mengambil nama jenis saat ini, yang ini harus bekerja di mana saja:
sumber
Untuk referensi, jika Anda memiliki tipe yang mewarisi dari yang lain, Anda juga dapat menggunakan
sumber
Jika Anda membutuhkan ini di kelas turunan, Anda bisa meletakkan kode itu di kelas dasar:
Kemudian, Anda dapat mencapai nama di kelas turunan. Mengembalikan nama kelas turunan. Tentu saja, ketika menggunakan kata kunci baru "nameof", tidak perlu seperti tindakan varietas ini.
Selain itu Anda dapat mendefinisikan ini:
Dan kemudian gunakan seperti ini:
sumber
Gunakan ini
Katakanlah Aplikasi Test.exe sedang berjalan dan fungsinya adalah foo () di form1 [pada dasarnya adalah class form1 ], maka kode di atas akan menghasilkan respons di bawah ini.
Ini akan kembali.
untuk nama fungsi:
akan kembali
Catatan jika Anda ingin menggunakan ini dalam penggunaan pengecualian:
sumber
[Nullable(2)]
sehingga Anda mendapatkan peringatan saat cek nol aktif.this
dapat dihilangkan. Yang Anda butuhkan untuk mendapatkan nama kelas saat ini adalah:sumber
Dapatkan nama kelas terkini dari Asp.net
sumber
[Nullable(2)]
sehingga Anda mendapatkan peringatan saat cek nol aktif.