传递方法的值

时间:2010-06-15 06:00:16

标签: c#

我是编程的初学者。那么请告诉我如何为compile()方法传递值。

class CL
{

    private const string clexe = @"cl.exe";
    private const string exe = "Test.exe", file = "test.cpp";
    private string args;
    public CL(String[] args)
    {
        this.args = String.Join(" ", args);
        this.args += (args.Length > 0 ? " " : "") + "/Fe" + exe + " " + file;
    }   

    public Boolean Compile(String content, ref string errors)
    {
        //remove any old copies
        if (File.Exists(exe))
            File.Delete(exe);
        if (File.Exists(file))
            File.Delete(file);

        File.WriteAllText(file, content);

        Process proc = new Process();
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.RedirectStandardError = true;
        proc.StartInfo.FileName = clexe;
        proc.StartInfo.Arguments = this.args;
        proc.StartInfo.CreateNoWindow = true;

        proc.Start();
        //errors += proc.StandardError.ReadToEnd();
        errors += proc.StandardOutput.ReadToEnd();

        proc.WaitForExit();

        bool success = File.Exists(exe);

        return success;
    }
}

2 个答案:

答案 0 :(得分:1)

public Boolean Compile(String content, ref string errors) 

你想知道怎么称呼吗?试试。 。

string content = "#include <stdio.h>\nmain(){\nprintf(\"Hello world\");\n}\n";
string errors = "";

CL k = new CL(new string[2] {"/Od", "/C"});
if(k.Compile(content, ref errors))
   Console.WriteLine("Success!");
else
   Console.WriteLine("Failure: {0}", errors);

希望这有帮助

答案 1 :(得分:1)

使用设计器创建表单,添加文本框名称txtCplusplus和一个按钮。为按钮添加点击事件。

将CL类粘贴到与事件处理程序相同的文件中(form.cs或任何你称之为的文件),而不是在方法或属性中。

在按钮单击事件处理程序中输入以下代码:

      CL cmp = New CL();
       string errs;   
       if (cmp.Compile(txtCplusplus.Text, ref errs) {
        MessageBox.Show("Success");
       } else {
         MessageBox.Show(errs);
       }