我正在玩我正在编写的C#应用程序中遇到的一些错误。 我一直得到的错误是:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string pw ="", hash =""; //Declare an intialise variables
if (args.Length < 4) // Test to see if correct number of arguments have been passed
{
Console.WriteLine("Please use command line arguments in this format: encrypt -e (or -d) password-to-encrypt-with input-file output-file");
Environment.Exit(0);
}
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);
}
switch (args[0]) //Uses first argument value to drive switch statement (-e or -d)
{
case "-e":
encrypt(string[] args);
break;
case "-d":
decrypt(string[] args);
break;
default:
Console.WriteLine("When using the program please use -e to encrypt and -d to decrypt");
break;
}
} //End of MAIN
static void encrypt(string[] args) //Function to encrypt
{
string inputtext =""; //Initialise Varible (Ensure it is empty)
inputtext=System.IO.File.ReadAllText(args[2]); //Read file in an assign to input text
return;
}
static void decrypt(string[] args) //Function to decrypt
{
string inputtext =""; //Initialise Varible (Ensure it is empty)
inputtext=System.IO.File.ReadAllText(args[2]); //Read file in an assign to input text
return;
}
}
}
任何帮助将不胜感激! 阿利斯泰尔
答案 0 :(得分:11)
调用方法时,不得指定参数的类型。所以:
case "-e":
encrypt(args);
break;
答案 1 :(得分:2)
除了Hans所说的,你还提到了关于方法中返回类型的错误。
您的encrypt
和decrypt
方法包含return
个语句,但它们是void
方法,这意味着它们没有任何返回类型。
要么给它一个你想要返回的类型(可能是你正在操作的字符串),要么完全删除return
语句。您不需要在方法的末尾显式地放置return
以使其退出方法。无论如何它都会这样做。
两个小的专业提示,我会在不同的行上声明你的字段,而不是所有的字段(使用你声明pw
和hash
的方式)并且还为{{添加using指令1}},因此您无需致电System.IO
,只需致电System.IO.File.ReadAllText
。