C#应用程序有很多错误

时间:2012-11-05 15:22:07

标签: c#

我正在玩我正在编写的C#应用​​程序中遇到的一些错误。 我一直得到的错误是:

  • 加密和解密调用必须具有返回类型
  • Console.WriteLine用作方法
  • static void encrypt(string [] args)期望的类,委托,接口或结构
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;
        }
    }  
}

任何帮助将不胜感激! 阿利斯泰尔

2 个答案:

答案 0 :(得分:11)

调用方法时,不得指定参数的类型。所以:

        case "-e":
        encrypt(args);
        break;

答案 1 :(得分:2)

除了Hans所说的,你还提到了关于方法中返回类型的错误。

您的encryptdecrypt方法包含return个语句,但它们是void方法,这意味着它们没有任何返回类型。

要么给它一个你想要返回的类型(可能是你正在操作的字符串),要么完全删除return语句。您不需要在方法的末尾显式地放置return以使其退出方法。无论如何它都会这样做。

两个小的专业提示,我会在不同的行上声明你的字段,而不是所有的字段(使用你声明pwhash的方式)并且还为{{添加using指令1}},因此您无需致电System.IO,只需致电System.IO.File.ReadAllText