我试图在枚举中列出我的一些类的方法,以便我可以根据所选的枚举调用这些方法。我尝试使用 ToString() 和 GetMethod(string) 没有运气。如果有更好的方法来动态更改我的委托将从枚举列表中调用的方法,我将不胜感激!我对 C# 很陌生,我也想知道是否有其他存储方法指针的方法。我研究了对这些板上的反思,并且在从枚举中进行铸造或分配方面都没有太多运气。
public enum funcEnum { FirstFunction, SecondFunction };
public funcEnum eList;
public delegate void Del();
public Del myDel;
void Start() {
myDel = FirstFunction; //pre-compiled assignment
myDel(); //calls 'FirstFunction()' just fine
下面的这个可以在运行时改变,它通常不会在 Start()
eList = funcEnum.SecondFunction; //this could be changed during runtime
myDel = eList.ToString();
明显的错误,myDel 正在寻找方法,不确定如何检索/将枚举值转换为要分配给委托的方法,尝试调用具有分配先验知识的方法。基本上希望枚举列表包含此类中的方法名称。
myDel(); //doesn't work
}
public void FirstFunction() {
Debug.Log("First function called");
}
public void SecondFunction() {
Debug.Log("Second function called");
}