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

Use a function or method with variables in them in another class? C#

我正在尝试使用来自另一个 class 的方法或函数,这就是我的代码在 class 中的样子,我想使用来自

的函数
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();
    }

它被标记为红色并显示 "No overload for method 'EncryptFile' takes 0 arguments"

当我删除 string inputFile, string outputFile 它没有被标记为红色,但是我需要这两个参数才能使该函数正常工作。

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

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

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

例如像这样:

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

您的函数 EncryptFile 需要两个参数才能工作,正如您指定的那样,即输入文件和输出文件位置。您需要在调用方法时传递它们。喜欢 Crypting.EncryptFile("somestring", "somestring");

添加@roryap 在这里所说的内容: - 在定义您的方法时,您还可以为该方法的参数定义默认值:

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

很难说它是否适用于您的实际情况,但这就是语言为您提供的。