调用基于变量值的方法

时间:2019-09-22 00:13:37

标签: c# variables methods

我有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 frame
void Update()
{


        this.GetType().GetMethod("Template00" + "1").Invoke(this, null);





}
public static string Templates001()
{
    // doing something here
} 
 }  

谢谢

1 个答案:

答案 0 :(得分:1)

您可以通过反思来做到这一点。编辑快速样本(忘记调用参数)。有关反射的一些提示:

  • 如果您获得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");
    }
}