📜  C#| Type.GetField()方法(1)

📅  最后修改于: 2023-12-03 15:00:15.122000             🧑  作者: Mango

C# | Type.GetField()方法

在 C# 中,GetField() 方法通常用于返回一个指定名称的公共字段。它是由 System.Type 类型定义的非静态方法,并且可以通过反射机制动态地访问字段。

语法
public System.Reflection.FieldInfo GetField (string name, System.Reflection.BindingFlags bindingAttr);

其中,参数 name 代表要获取公共字段的名称,参数 bindingAttr 代表构成属性的绑定标志,用于指示搜索方式和绑定情况。

返回值

该方法返回包含有关公共字段的信息和动态调用字段的功能的 FieldInfo 对象。如果未找到任何匹配的字段,则返回 null。

代码示例

以下是一个简单的示例,说明如何使用 GetField() 方法获取一个字段并对其进行操作:

using System;
using System.Reflection;

namespace DemoApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Type myType = typeof(MyClass);
            FieldInfo myFieldInfo = myType.GetField("myField");
            MyClass obj = new MyClass();
            int value = (int)myFieldInfo.GetValue(obj);
            Console.WriteLine("原来的 myField 值为:" + value);
            myFieldInfo.SetValue(obj, 12345);
            value = (int)myFieldInfo.GetValue(obj);
            Console.WriteLine("新的 myField 值为:" + value);
        }
    }

    class MyClass
    {
        public int myField = 100;
    }
}

在上面的代码中,我们定义了 MyClass 类,其中包含一个公共字段 myField。然后我们使用反射机制获取 myField 字段并将其值更改为 12345。最终,程序会将更改后的字段值输出到控制台。

注:此示例仅用于演示目的。在实际情况中,我们通常不建议直接操作字段,而应该使用属性和方法作为接口来修改和访问对象的状态。

参考文献