为了账号安全,请及时绑定邮箱和手机立即绑定

根据变量的值调用方法

根据变量的值调用方法

C#
人到中年有点甜 2023-12-17 16:56:45
我有 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");

    }

}


查看完整回答
反对 回复 2023-12-17
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信