在另一个类中使用带有变量的函数或方法? C#

时间:2015-11-30 17:44:30

标签: c# visual-studio function methods arguments

我试图使用另一个类的方法或函数,这就是我的代码从我想要使用函数的类看起来的样式。

public class Crypting
{
    internal static void EncryptFile(string inputFile, string outputFile)
    {

     // My code is in here
    }

所以我尝试在我的主要表单中使用此函数。

 private void primeButton14_Click(object sender, EventArgs e)
    {
      Crypting.EncryptFile();
    }

它被标记为红色并且表示"没有超载的方法'加密文件'取0个参数"

删除string inputFile, string outputFile时 它没有得到红色标记但是我需要这个函数的2个参数才能工作。

如何在主窗体中使用此功能?提前致谢。 :)

3 个答案:

答案 0 :(得分:1)

信息很清楚:你必须提供参数:

EncryptFile(string inputFile, string outputFile) // see the two arguments, inputFile and outputFile?

称它为例如像这样:

Crypting.EncryptFile(@"c:\myinputfile.txt", @"c:\myoutputfile.txt");

答案 1 :(得分:0)

您的函数EncryptFile需要两个参数来处理,如您指定的那样,即输入文件和输出文件位置。你需要在调用方法时传递它们。比如Crypting.EncryptFile("somestring", "somestring");

答案 2 :(得分:0)

要添加@roryap在此处说的内容:https://stackoverflow.com/a/34004763/327079 - 在定义方法时,您还可以为方法定义参数的默认值:

public class Crypting
{
    internal static void EncryptFile(string inputFile = @"c:\input.txt", string outputFile = @"c:\output.txt")
    {
        Console.WriteLine("inputFile: {0} outputFile: {1}", inputFile, outputFile);
    }
}

然后,如果您使用它,您可以获得以下结果:

Crypting.EncryptFile(); -> inputFile: c:\input.txt outputFile: c:\output.txt
Crypting.EncryptFile(@"c:\otherInputFile.txt"); -> inputFile: c:\otherInputFile.txt outputFile: c:\output.txt
Crypting.EncryptFile(@"c:\otherInputFile.txt", @"c:\otherOutputFile.txt"); -> inputFile: c:\otherInputFile.txt outputFile: c:\otherOutputFile.txt

很难判断它是否适用于您的实际案例,但这就是语言为您提供的。