Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在课堂上用c语言同时以字符串形式执行代码_C#_String_Runtime_Execute - Fatal编程技术网

C# 在课堂上用c语言同时以字符串形式执行代码

C# 在课堂上用c语言同时以字符串形式执行代码,c#,string,runtime,execute,C#,String,Runtime,Execute,主要方法 class ExeClass { public void p1() { //Execute String string p = "i=i+1;"; //How To This } } 你的问题很模糊,但我想我明白你在问什么 您试图在ExeClass中更改的变量没有在其中定义,而是在Form1\u Load方法中本地定义的。 要在ExeClass.p1方法中获取它,需要传入它。 有几种方法可以做到这一点。但在这种

主要方法

class ExeClass
{
    public void p1()
    {
        //Execute String
        string p = "i=i+1;";
        //How To This 
    }
}

你的问题很模糊,但我想我明白你在问什么

您试图在ExeClass中更改的变量没有在其中定义,而是在Form1\u Load方法中本地定义的。 要在ExeClass.p1方法中获取它,需要传入它。 有几种方法可以做到这一点。但在这种情况下,我建议您传递局部变量,然后返回更改后的值

从方法返回内容会更改方法声明:

private void Form1_Load(object sender, EventArgs e)
{
    int i = 1;
    ExeClass p1 = new ExeClass();
    p1.p1();
    int j = i;//Now the amount i,j is the equal to 2
}
这允许您从中返回一个int值。 我们还需要在局部变量中传递一个值,这可以通过稍微更改声明来完成:

public void p1() // Old
public int p1()  // New
现在,我们得到了传递给p1方法的值,我们可以更改它:

public int p1(int value) { ...
现在,当我们调用函数时,将返回值,您需要捕获它:

public int p1(int value) {
  value += 1;
  return value;
}
编辑:


如果您询问是否有一种方法可以从字符串执行c代码,那么您可以查看更多信息,但如果您可以避免,我建议不要这样做…

c中的“不是简单的求值”功能。原则上,可以使用函数求值库,也可以嵌入脚本语言。但是你真的应该重新考虑你的问题,以避免评估。Hi的可能重复我很抱歉我说我的问题不是计算我只是想举一个简单的例子来说明我的问题是当用户在激活删除类之前删除数据以检查数据是否未被使用,如果你使用此错误,有一列是我必须运行的数据联系人。存在动态代码问题是使用了大量代码,因为我编写的类实际上是code,而不是计算代码,而是使用ModelState.AddModelErrorName;
private void Form1_Load(object sender, EventArgs e)
{
  int i = 1;
  ExeClass p1 = new ExeClass();
  int j = p1.p1(i); // See that we pass the `i` variable in here and that we catch the return value in the `j` variable.
  Console.WriteLine("Value is now {0}", j); // Will print : "Value is now 2"
}