利用C#的反射,实现根据一个字符串,找到某个类中变量名和该字符串相同的变量,并且给其赋值,该功能可能回应用于读取表格时,等:
1、根据字符串找到类里面的变量
找到FieldTest类中,名为name的变量
FieldTest fieldTest = new FieldTest();
System.Reflection.FieldInfo fieldInfo = fieldTest.GetType().GetField("name");
给name变量赋值:
fieldInfo.SetValue(fieldTest, "亚里士多德");
2、下面是完整代码:
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
FieldTest fieldTest = new FieldTest();
System.Reflection.FieldInfo fieldInfo = fieldTest.GetType().GetField("name");
fieldInfo.SetValue(fieldTest, "亚里士多德");
fieldInfo = fieldTest.GetType().GetField("age");
fieldInfo.SetValue(fieldTest, 123);
print(string.Format("{0}的年龄有{1}岁了。", fieldTest.name, fieldTest.age));
}
}
public class FieldTest
{
public string name;
public int age;
}