Mendapatkan Kaedah dan Nama Taip Menggunakan Refleksi
Dalam C#, adalah mungkin untuk mendapatkan nama kaedah yang memanggil kaedah semasa bersama-sama dengan sertakan nama kelas. Begini cara anda boleh mencapai ini menggunakan pantulan C#:
public class SomeClass { public void SomeMethod() { StackFrame frame = new StackFrame(1); var method = frame.GetMethod(); var type = method.DeclaringType; var name = method.Name; } }
Sebagai contoh, pertimbangkan kod berikut:
public class Caller { public void Call() { SomeClass s = new SomeClass(); s.SomeMethod(); } }
Dalam senario ini, nama ialah "Panggil" dan jenis ialah "Pemanggil".
Nota: Kaedah ini menggunakan StackFrame untuk mengakses kaedah panggilan maklumat.
Kemas kini untuk .NET 4.5 dan Ke Atas
Untuk .NET 4.5 dan yang lebih baru, terdapat pendekatan yang lebih mudah menggunakan CallerMemberNameAttribute. Atribut ini membolehkan anda menentukan parameter kaedah yang secara automatik akan diberikan nama kaedah panggilan. Contohnya:
public class SomeClass { public void SomeMethod([CallerMemberName]string memberName = "") { Console.WriteLine(memberName); // Output will be the name of the calling method } }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Kaedah Panggilan dan Kelasnya dalam C# Menggunakan Reflection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!