SMT*_*Y01 8 c# reflection field
是否可以从实例和它的值列出我们的变量名称.
public class Car
{
public string Color;
public string Model;
public string Made;
}
protected void Page_Load(object sender, EventArgs e)
{
//Create new instance
Car MyCar = new Car();
MyCar.Color = "Red";
MyCar.Model = "NISSAN";
MyCar.Made = "Japan";
//SOMETHING HERE
foreach (MyCar Variable in MyCar)
{
Response.Write("<br/>Variable Name"+ "XXX"+ "Variable Value");
}
}
Run Code Online (Sandbox Code Playgroud)
尝试这样的事情:
using System;
class Car
{
public string Color;
public string Model;
public string Made;
}
class Example
{
static void Main()
{
var car = new Car
{
Color = "Red",
Model = "NISSAN",
Made = "Japan"
};
foreach (var field in typeof(Car).GetFields())
{
Console.WriteLine("{0}: {1}", field.Name, field.GetValue(car));
}
}
}
Run Code Online (Sandbox Code Playgroud)
你需要反思来做到这一点.在这里,您可以看到一个类似的问题:如何获取类中所有公共变量的列表?(C#).
基于此,我认为您的案例将通过以下代码解决:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
FieldInfo[] myFieldInfo;
Type myType = typeof(Car);
myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
string result = @"The String fields of Car class are:";
for (int i = 0; i < myFieldInfo.Length; i++)
{
if (myFieldInfo[i].FieldType == typeof(String))
{
result += "\r\n" + myFieldInfo[i].Name;
}
}
MessageBox.Show(result);
}
public class Car
{
public string Color;
public string Model;
public string Made;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4787 次 |
| 最近记录: |