在方法中传递参数,在 if-else 语句中 C#
Passing parameters in a method, in an if-else statement C#
我正在编写一个方法,它可以接受一定数量的参数并包含一个 if-else 语句。当我使用命令行参数时,我传递的参数最少 3 个,最多 4 个。
当我 运行 我的命令行只有 3 个参数时,它应该只有 运行 if 的第一部分。只有当我必须传递第四个参数时,它才会 运行 else,但是每次我 运行 四个参数时,代码永远不会到达 else 并且只有 运行 if 语句的开头。任何想法表示赞赏
protected void net_group(string command, string param1, string param2, string param3)
{
Console.WriteLine("Got information net group command");
//creates group.txt file when "net group" command is used
string path = "C:\Files\groups.txt";
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(param2 + ": " + param3); //param2 is name of the group //param3 is name of user
}
if (not sure what argument would go here) {
//writes to the audit log and to the console when group is made w/out users
Console.WriteLine("Group " + param2 + " created");
string path2 = "C:\Files\audit.txt";
using (StreamWriter sw2 = File.AppendText(path2))
{
sw2.WriteLine("Group " + param2 + " created");
}
}
else
{
//writes to the audit log and to the console when user is added to a new group
//currently the method wont reach here even when I pass four parameters
Console.WriteLine("User " + param3 + " added to group " + param2 + "");
string path3 = "C:\Files\audit.txt"; //doesnt write this to audit.txt
using (StreamWriter sw3 = File.AppendText(path3))
{
sw3.WriteLine("User " + param3 + " added to group " + param2 + "");
}
}
Console.Read();
我想您的代码应该是这样的:
static void Main(string[] args)
{
...
if (args.Length == 3) {
//writes to the audit log and to the console when group is made w/out users
Console.WriteLine("Group " + args[1] + " created");
string path2 = "C:\Files\audit.txt";
using (StreamWriter sw2 = File.AppendText(path2))
{
sw2.WriteLine("Group " + args[1] + " created");
}
}
else
{
//writes to the audit log and to the console when user is added to a new group
正如教程所指出的,您还可以使用 Environment.CommandLine 或 Environment.GetCommandLineArgs 从控制台或 Windows 应用程序中的任何位置访问命令行参数。
查看方法的签名,最好的解决方案是使用类似以下内容的内容:
if (String.IsNullOrEmpty(param3)) // you could say that only 3 params were given
{
}
else // you could say that all 4 params were given
{
}
我正在编写一个方法,它可以接受一定数量的参数并包含一个 if-else 语句。当我使用命令行参数时,我传递的参数最少 3 个,最多 4 个。
当我 运行 我的命令行只有 3 个参数时,它应该只有 运行 if 的第一部分。只有当我必须传递第四个参数时,它才会 运行 else,但是每次我 运行 四个参数时,代码永远不会到达 else 并且只有 运行 if 语句的开头。任何想法表示赞赏
protected void net_group(string command, string param1, string param2, string param3)
{
Console.WriteLine("Got information net group command");
//creates group.txt file when "net group" command is used
string path = "C:\Files\groups.txt";
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(param2 + ": " + param3); //param2 is name of the group //param3 is name of user
}
if (not sure what argument would go here) {
//writes to the audit log and to the console when group is made w/out users
Console.WriteLine("Group " + param2 + " created");
string path2 = "C:\Files\audit.txt";
using (StreamWriter sw2 = File.AppendText(path2))
{
sw2.WriteLine("Group " + param2 + " created");
}
}
else
{
//writes to the audit log and to the console when user is added to a new group
//currently the method wont reach here even when I pass four parameters
Console.WriteLine("User " + param3 + " added to group " + param2 + "");
string path3 = "C:\Files\audit.txt"; //doesnt write this to audit.txt
using (StreamWriter sw3 = File.AppendText(path3))
{
sw3.WriteLine("User " + param3 + " added to group " + param2 + "");
}
}
Console.Read();
我想您的代码应该是这样的:
static void Main(string[] args)
{
...
if (args.Length == 3) {
//writes to the audit log and to the console when group is made w/out users
Console.WriteLine("Group " + args[1] + " created");
string path2 = "C:\Files\audit.txt";
using (StreamWriter sw2 = File.AppendText(path2))
{
sw2.WriteLine("Group " + args[1] + " created");
}
}
else
{
//writes to the audit log and to the console when user is added to a new group
正如教程所指出的,您还可以使用 Environment.CommandLine 或 Environment.GetCommandLineArgs 从控制台或 Windows 应用程序中的任何位置访问命令行参数。
查看方法的签名,最好的解决方案是使用类似以下内容的内容:
if (String.IsNullOrEmpty(param3)) // you could say that only 3 params were given
{
}
else // you could say that all 4 params were given
{
}