我有 1000 个方法,称为 method0001、method0002、...、method1000。 我有一个取值在 1 到 1000 之间的变量。如果变量的值为x,我想调用methodx。例如,如果变量的值为 34,我想调用 method0034。请问我该如何用 C# 编写这个代码?很多人都在问 Methodwxyz 需要什么。每种方法都是不同类型的数学问题。我已经按照有用的评论完成了此操作,但收到错误(编辑了之前的问题) using System.Collections.Generic; using UnityEngine; public class TextControl : MonoBehaviour{public static TextControl instance;void Start(){ instance = this;}// Update is called once per framevoid Update(){ this.GetType().GetMethod("Template00" + "1").Invoke(this, null);}public static string Templates001(){ // doing something here} } 谢谢
1 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
你可以通过反思来做到这一点。编辑快速示例(忘记调用参数)。关于反射的一些提示:
如果出现 nullException 则意味着找不到该方法
您调用的方法需要公开
如果您使用混淆,您的方法可能不会具有相同的名称
代码
public class Program
{
public static void Main(string[] args)
{
Check method1 = new Check(1);
Check method2 = new Check(2);
}
}
public class Check
{
public Check(int x)
{
this.GetType().GetMethod("Method" + x).Invoke(this, null);
}
public void Method1()
{
Console.WriteLine("Method 1");
}
public void Method2()
{
Console.WriteLine("Method 2");
}
}
- 1 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消