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不存在类似的属性?
答案 0 :(得分:2)
只是一个猜测,但我认为您必须在基类中搜索具有相同名称的成员。
您还可以查看两个字段生成的IL,看看是否存在可以通过反射使用的差异。
答案 1 :(得分:1)
此处new
的唯一影响是抑制编译器警告。
我的猜测是它在生成的IL中没有留下任何痕迹。
反问题:你为什么感兴趣?只是好奇或者你有实际情况吗?