导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

Type.GetFields 方法

2013/12/13

返回当前 Type 的所有公共字段。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

public FieldInfo[] GetFields()

返回值

类型: System.Reflection.FieldInfo []
表示为当前 Type 定义的所有公共字段的 FieldInfo 对象数组。
- 或 -
如果没有为当前 Type 定义的公共字段,则为 FieldInfo 类型的空数组。

GetFields 方法不按特定的顺序返回字段,例如按字母顺序或声明顺序。您的代码一定不能依赖于字段的返回顺序,因为该顺序可以改变。

下表显示当反映到某个类型时,Get 方法返回基类的哪些成员。

成员类型

静态

非静态

构造函数

字段

是。字段总是按名称和签名隐藏。

事件

不适用

常规类型系统规则是:该继承与实现属性的方法的继承相同。反射将属性视为按名称和签名隐藏。请参见下面的“注意 2”。

方法

是。方法(虚方法和非虚方法)可按名称隐藏或按名称和签名隐藏。

嵌套类型

属性

不适用

常规类型系统规则是:该继承与实现属性的方法的继承相同。反射将属性视为按名称和签名隐藏。请参见下面的“注意 2”。

说明:

  1. 按名称和签名隐藏会考虑签名的所有部分,包括自定义修饰符、返回类型、参数类型、标记和非托管调用约定。这是二进制比较。

  2. 对于反射,属性和事件按名称和签名隐藏。如果基类中有同时带 get 访问器和 set 访问器的属性,但派生类中仅有 get 访问器,则派生类属性隐藏基类属性,并且您将无法访问基类的设置程序。

  3. 自定义特性不是常规类型系统的组成部分。

如果当前 Type 表示构造泛型类型,则此方法将返回 FieldInfo 对象,并且其类型形参替换为相应的类型实参。

如果当前 Type 表示泛型类型或泛型方法的定义中的类型参数,则此方法搜索类约束的公共字段。

下面的示例显示 GetFields() 方法的用法。

说明注意:

要运行此示例,请参见生成具有静态 Windows Phone TextBlock 控件的示例


using System;
using System.Reflection;

class Example
{
    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
    {
        Type myType = typeof(EventAttributes);

        outputBlock.Text = 
            String.Format("Fields of {0}, flagging FieldAttributes.SpecialName:\n",
                          myType.Name);

        foreach (FieldInfo fi in myType.GetFields())
        {
            // Determine whether or not each field has a special name.
            if (fi.IsSpecialName)
            {
                outputBlock.Text += 
                    String.Format("{0} has the FieldAttributes.SpecialName attribute.\n", 
                                  fi.Name);
            }
            else
            {
                outputBlock.Text += fi.Name + "\n";
            }
        }
    }
}

/* This example produces output similar to the following:

Fields of EventAttributes, flagging FieldAttributes.SpecialName:
value__ has the FieldAttributes.SpecialName attribute.
None
SpecialName
ReservedMask
RTSpecialName
 */


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2014 Microsoft