C# 如何根据变量名动态地对类的相应成员进行操作?

听说使用反射机制可以,但具体是怎样的呢?

阅读 6.4k
1 个回答

来看代码吧,反射可以用来设置类的私有成员。

    using System;
    using System.Reflection;

    class Test
    {
        private int _name;

        public int GetName()
        {
            return _name;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Test t = new Test();
            Type tt = t.GetType();
            BindingFlags flag =  BindingFlags.NonPublic | BindingFlags.Instance;
            FieldInfo fieldInfo = tt.GetField("_name", flag);
            fieldInfo.SetValue(t, 2);
            Console.WriteLine(t.GetName());
        }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进