Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Maklumat Kaedah Panggilan Menggunakan Refleksi dalam C#?
Mendapatkan Maklumat Kaedah Panggilan Menggunakan Refleksi
Mendapatkan nama dan jenis kaedah panggilan adalah keperluan biasa dalam pengaturcaraan berasaskan refleksi. Apabila fungsi dilaksanakan, ia boleh berguna untuk menentukan konteks di mana ia digunakan.
Menggunakan Kelas StackFrame
Satu pendekatan melibatkan penggunaan kelas StackFrame. Pembina mengambil integer yang mewakili tahap timbunan untuk diperiksa. Dengan melepasi 1, kami boleh mendapatkan maklumat tentang kaedah panggilan.
public class Caller { public void Call() { StackFrame frame = new StackFrame(1); var method = frame.GetMethod(); var type = method.DeclaringType; var name = method.Name; } }
Kod ini akan menetapkan "Panggilan" kepada nama dan "Pemanggil" kepada taip, dengan mengandaikan ia dipanggil daripada kaedah lain.
Menggunakan CallerMemberName Atribut
Dalam .NET 4.5 dan lebih baru, CallerMemberNameAttribute menyediakan penyelesaian yang lebih mudah. Atribut menentukan nama kaedah panggilan sebagai parameter.
public class SomeClass { public void SomeMethod([CallerMemberName]string memberName = "") { Console.WriteLine(memberName); // Output will be the name of the calling method } }
Kod ini secara automatik memberikan nama kaedah panggilan kepada parameter memberName, tanpa memerlukan refleksi tambahan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Maklumat Kaedah Panggilan Menggunakan Refleksi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!