http://msdn.microsoft.com/en-us/library/435f1dw2.aspx
public class Base
{
public string Field;
}
public class Child : Base
{
public new string Field;
}
[TestFixture]
public class TestClass
{
[Test]
public void DetectNew()
{
var fieldInfo = typeof(Child).GetField("Field");
//How do I tell fieldInfo has a new modifier?
Debug.WriteLine(fieldInfo);
}
}
编辑:我知道对于方法和属性,我可以检查"MethodBase.IsHideBySig"。为什么FieldInfo不存在类似的属性?
只是猜测,但我认为您必须在基类中搜索具有相同名称的成员。
您还可以查看为这两个字段生成的IL,看看是否存在可以通过反射使用的差异。
这里new
的唯一作用是抑制编译器警告。
我的猜测是,它不会在生成的IL中留下任何痕迹。
反问:你为什么感兴趣?只是好奇还是你有实际的场景?