方法/字段之间的歧义

时间:2010-10-26 16:59:37

标签: c#

除了重命名字段以便为其分配值(如果其名称与方法相同)之外,还有其他方法吗?

在撰写本文时,我只是想也许可以使用反思。

反思有效,但是有更好/不同的方式吗?

FieldInfo fi = typeof(TheClass).GetField("TheClash");
fi.SetValue(TheClassObj, TheFieldValue);

4 个答案:

答案 0 :(得分:2)

它是如何具有相同名称的?那不应该(AFAIK)通常是可能的。如果问题出在基类上,可能是:

base.fieldName = value;

如果你的意思是方法vs 变量,那么:

this.MethodName();

除此之外,我看到问题的唯一方法就是你有“foo”和“Foo”,并且是用像VB这样不区分大小写的语言来调用。

答案 1 :(得分:1)

为什么不将TheClassObj强制转换为类型TheClass并以这种方式访问​​它的属性?

((TheClass)TheClassObj).TheField = "blah";

答案 2 :(得分:1)

您可能希望仔细查看BindingsFlags,它们是Type.GetField()的可选参数。 GetField有一个,GetProperty有一个。希望这有帮助!

答案 3 :(得分:0)

当然,反射是通过名称访问字段或方法的方式。但是你为什么要这样做?

你可以这样做:

public int Test{get;set;}

然后,编译器将为您生成变量。