1

我想要做的是确保从命令行传递的参数在一组特定的字符之间,但是当使用可接受范围之外的值时,代码似乎没有突出任何问题。

if (args[1].Length < 10 && args[1].Length > 40) // Test to see if the password is between 10 and 40 characters
{
Console.WriteLine("Please use a password between 10 and 40 characters");
Environment.Exit(0);
}

我想知道是否有人可能对为什么这不起作用有任何建议。传递的参数是 -e password file1.txt file2.txt

提前致谢!

阿利斯泰尔

4

4 回答 4

2

你有错误的逻辑,应该是||

    if (args[1].Length < 10 || args[1].Length > 40) // Test to se
于 2012-11-01T11:43:39.527 回答
1

参数的长度不能同时小于10 大于40。您应该选择满足这些条件中的任何一个(使用条件 OR 运算符),但不能同时满足这两个条件:

if (args[1].Length < 10 || args[1].Length > 40)
于 2012-11-01T11:43:26.970 回答
1

它应该是:

if (args[1].Length < 10 || args[1].Length > 40) // Test to see if the password is  between 10 and 40 characters
{
   Console.WriteLine("Please use a password between 10 and 40 characters");
   Environment.Exit(0);
}
于 2012-11-01T11:44:19.247 回答
1

你给出了错误的条件:

它应该是:

if (args[1].Length < 10 || args[1].Length > 40)
于 2012-11-01T11:47:21.750 回答