我正在研究一个用Java语言实现的模式,并且有一些关于它如何与C#对齐(可以移植到)的问题。
Java:
class Foo
{
private Class someClass;
...
}
class Bar
{
private Field some Field;
}
首先,Class存储域对象的实例。看起来Java在类型上公开了反射方法,这些反射方法用于通过反射访问对象上的字段。什么类型在C#中是同义词?我是先使用object再使用MethodInfo,还是有更好的方法?
第二,Field是框架中的类型,通过使用:
someClass.getDeclaredField(fieldName)
在我应该使用的.NET框架中有没有类似的东西?
现在,我在Foo中创建了一个自定义对象来代替Class,并为Field创建了一个自定义对象。有没有更好的方法来做这件事?
发布于 2009-02-23 14:59:36
发布于 2009-02-25 00:25:50
您也可以使用以下命令获取该字段的值:
foo.GetType().GetField("name").GetValue(foo).ToString()
在这个例子中,我们假设类foo有一个名为"name“的字段。这有什么帮助呢?我们可以这样想:
private string getValueOfUnknownField(string fieldName)
{
return(foo.GetType().GetField(fieldName).GetValue(foo).ToString());
}
即使您更改了类foo并向其中添加了新字段,也不需要更改getValueOfUnknownField方法。
https://stackoverflow.com/questions/579729
复制相似问题