c#如何从类文件中调用类

时间:2017-08-02 07:42:00

标签: c# cmd

我有这门课,但我不知道怎么称呼它。对不起,我是新人,我还在学习。有了这个类,我尝试打开MS SQL端口。可能有不同的方式,但就像我说我还在学习。

public class ProcessStart
    {
        public string input;
        public static void startProcess(string input)
        {
            Process process = new Process();
            input = @"
@echo Enabling SQLServer default instance port 1433
netsh advfirewall firewall add rule name =""SQLServer"" dir =in action = allow protocol = TCP localport = 1433
@echo Enabling Dedicated Admin Connection port 1434
@echo Enabling HTTP port 80
@netsh advfirewall firewall add rule name=""SqlServer1"" dir=in action=allow protocol=TCP localport=80
@echo Enabling Dedicated Admin Connection port 80
";
            process.StartInfo.FileName = "cmd.exe";
            process.StartInfo.CreateNoWindow = true;
            process.StartInfo.RedirectStandardInput = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.UseShellExecute = false;
            process.Start();
            process.StandardInput.WriteLine(input);
            process.StandardInput.Flush();
            process.StandardInput.Close();
            process.WaitForExit();
            Console.WriteLine(process.StandardOutput.ReadToEnd());
            //Console.ReadKey();

        }
    }

1 个答案:

答案 0 :(得分:3)

因为startProcess public ,您可以从课外调用它。因为它是 static ,所以可以在不创建实例的情况下调用它。所以:

ProcessStart.startProcess(input);

此外,您需要在某处使用静态Main方法,例如:

class Program {
    static void Main() {
        …
    }
}

定义Main()方法的类别无关紧要。您可以将其添加到ProcessStart

修改:您的课程有些奇怪:您在课堂上声明了一个未使用的非静态 input成员,以及{{ 1}}然后你忽略的参数,因为你在第二行覆盖它。您可以删除成员变量并选择使用传入的参数值,或者删除参数并在方法体中声明它:

input

class ProcessStart {
    public static void startProcess(string input) {
        Process process = new Process();
        // Don’t assign input here! Use the argument.
        process.StartInfo. …
        …
    }
}