Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 29154|Jawab: 2

[Sumber] .NET/C# atribut CallerMemberName, CallerFilePath, CallerLineNumber

[Salin tautan]
Diposting pada 11/08/2021 09.45.56 | | | |
Tiga Atribut diperkenalkan di .Net 4.5: CallerMemberName, CallerFilePath, dan CallerLineNumber. Dengan bantuan kompiler, Anda bisa mendapatkan nama fungsi panggilan (tepatnya, itu harus menjadi anggota), file panggilan, dan nomor saluran panggilan.

Dokumentasi:https://docs.microsoft.com/en-us ... membernameattribute

Anda juga dapat menggunakan objek StackTrace dan StackFrame untuk mendapatkannya, tetapi dengan fitur ini, kita bisa mendapatkannya dengan lebih nyaman.

StackTrace: Mewakili pelacakan tumpukan, yang merupakan kumpulan yang diurutkan dari satu atau beberapa bingkai tumpukan.

StackFrame: Memberikan informasi tentang StackFrame (panggilan fungsi dalam tumpukan panggilan yang mewakili utas saat ini).

Sebelumnya, saya menggunakan AOP untuk mendapatkan nama metode penelepon melalui StackTrace, dan kodenya adalah sebagai berikut:


Dengan menggunakan fitur tersebut, kode pengujian adalah sebagai berikut:

Rendering:



(Akhir)




Mantan:Kebijakan pembaruan rekam jepret Maven updatePolicy
Depan:Java byte[] dan InputStream dikonversi satu sama lain
 Tuan tanah| Diposting pada 27/11/2022 21.09.56 |
 Tuan tanah| Diposting pada 27/11/2022 22.35.47 |
Mendapatkan nama metode saat ini dari fungsi asinkron?

Login hyperlink terlihat.

C# 5 menambahkan properti informasi penelepon, yang mungkin memberi Anda lebih banyak dari apa yang Anda cari. Perhatikan bahwa ini menyisipkan informasi yang sesuai pada waktu kompilasi ke situs panggilan, daripada menggunakan informasi runtime. Fungsionalitas yang lebih terbatas (jelas Anda tidak mendapatkan tumpukan panggilan penuh), tetapi jauh lebih cepat.





Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com