除了重命名字段以赋给它一个值,如果其名称与方法相同,还有什么办法吗?方法/字段之间的歧义
在写这篇文章时,我只是想,也许可以使用反射。
反射的作品,但有没有更好的/不同的方式做到这一点?
FieldInfo fi = typeof(TheClass).GetField("TheClash"); fi.SetValue(TheClassObj, TheFieldValue);
除了重命名字段以赋给它一个值,如果其名称与方法相同,还有什么办法吗?方法/字段之间的歧义
在写这篇文章时,我只是想,也许可以使用反射。
反射的作品,但有没有更好的/不同的方式做到这一点?
FieldInfo fi = typeof(TheClass).GetField("TheClash"); fi.SetValue(TheClassObj, TheFieldValue);
你可能想在BindingsFlags看近,哪些是可选的参数Type.GetField()。有一个用于GetField,另一个用于GetProperty。希望这可以帮助!
它是如何具有相同的名称?这应该(AFAIK)通常是可能的。如果问题是一个基类,也许:
base.fieldName = value;
如果平均法VS 变量,则:
比this.MethodName();
其他,我看问题的唯一方法是你有“foo”和“Foo”,并且正在调用VB等不区分大小写的语言。
当然,反射是通过名称访问字段或方法的方式。但你为什么要这样做?
你可以这样做:那么
public int Test{get;set;}
编译器将生成引擎盖你下的变量。
为什么不投入TheClassObj来键入TheClass并以这种方式访问它的属性?
((TheClass)TheClassObj).TheField = "blah";
由于该方法在TheClass中不起作用。 – Will 2010-10-26 17:44:31
你能否提供具有相同名称的方法和字段的类的代码?正如答案中提到的:这不应该是可能的。 – 2010-10-26 17:02:15