2012-11-01 32 views
1

我想要做的是确保从命令行传递的参数位于特定的一组字符之间,但是代码似乎没有突出显示任何问题使用超出可接受范围的值。在C#中检查命令行参数的长度#

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密码file1.txt file2.txt

在此先感谢!

阿利斯泰尔

回答

2

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

if (args[1].Length < 10 || args[1].Length > 40) // Test to se 
+0

不依赖于空调的声明是否是错误或不? - 如果密码长度小于10或大于40,则为错误。 – faester

+0

条件声明是错误(我在进一步执行代码之前捕获范围之外的任何内容) 感谢您的答复! – user1791207

1

参数不能在长度二者较小超过10 更长大于40应该进行选择以满足这些条件(使用Conditional OR Operator),但不严格两种:

if (args[1].Length < 10 || args[1].Length > 40) 
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); 
} 
+0

感谢您的答复! – user1791207

1

你给错了条件:

它应该是:

if (args[1].Length < 10 || args[1].Length > 40)