Làm cách nào tôi có thể nhận được giá trị của parms (trong vòng lặp sử dụng phản chiếu). Trong câu hỏi trước, ai đó đã chỉ cho tôi cách lặp qua các parm bằng cách sử dụng sự phản chiếu.C# Nhận giá trị của parms bằng cách sử dụng phản chiếu
static void Main(string[] args)
{
ManyParms("a","b","c",10,20,true,"end");
Console.ReadLine();
}
static void ManyParms(string a, string b, string c, int d, short e, bool f, string g)
{
var parameters = MethodBase.GetCurrentMethod().GetParameters();
foreach (ParameterInfo parameter in parameters)
{
string parmName = parameter.Name;
Console.WriteLine(parmName);
//Following idea required an object first
//Type t = this.GetType();
//t.GetField(parmName).GetValue(theObject));
}
}
Nếu bạn phải biết tại sao tôi muốn làm điều này, xin vui lòng xem tại đây: .NET Reflection of all method parameters
Cảm ơn tất cả - nó có vẻ như trong Python, Perl, PHP này sẽ được dễ dàng.
Mặc dù nó có thể không phản ánh, nếu tôi sử dụng sự phản chiếu để lấy tên trường, có vẻ như sẽ có một cách năng động dễ dàng để lấy giá trị dựa trên tên. Tôi chưa thử AOP (Lập trình hướng khía cạnh) các giải pháp. Đây là một trong những điều mà nếu tôi không thể làm điều đó trong một hoặc hai giờ, tôi có lẽ sẽ không làm điều đó.
Có lẽ một cái gì đó có thể được thực hiện bằng cách kiểm tra thông qua phản ánh máy nhà nước được tạo ra khi bạn sử dụng một IEnumerable? Chỉ cần một ý tưởng tôi sẽ không biết làm thế nào để nhận ra bản thân mình :-) (Bình luận ở đây vì một câu hỏi trùng lặp ngày hôm nay) – Jbjstam