C#-如何从静态void main调用方法
本文关键字:main 调用 方法 void 静态 C#- | 更新日期: 2023-09-27 17:59:20
我在static void main中有一些代码,尽管我希望它从static void main调用startremup方法(就像它调用RemoveDuplicate一样,带有适当的参数),但我已经尝试了startremup();
private void RemoveDuplicate(string sourceFilePath, string destinationFilePath)
{
var readLines = File.ReadAllLines(sourceFilePath, Encoding.Default);
File.WriteAllLines(destinationFilePath, readLines.Distinct().ToArray(), Encoding.Default);
}
private void startremdup(object sender, EventArgs e)
{
RemoveDuplicate("C:'test.txt", "C:'test2.txt");
}
startremdup
是实例方法。这意味着您需要在包含它的任何类的实例上调用它
Foo foo = new Foo();
foo.startremdup(null, EventArgs.Empty);
就我个人而言,它看起来应该是一个静态的方法,最好是一个更合理的名称,但这就是为什么它当时不起作用的原因。
如果我是你,我实际上会放下你当前的任务,拿起一本很好的C#入门书——学习静态成员和实例成员之间的区别,等等。
使startremdup()
和RemoveDuplicate()
都是静态的。
private static void RemoveDuplicate(string sourceFilePath, string destinationFilePath)
{
var readLines = File.ReadAllLines(sourceFilePath, Encoding.Default);
File.WriteAllLines(destinationFilePath, readLines.Distinct().ToArray(), Encoding.Default);
}
private static void startremdup(object sender, EventArgs e)
{
RemoveDuplicate("C:'test.txt", "C:'test2.txt");
}
也将方法设为static
。
除非在对象引用上调用非静态方法,否则不能从静态方法中调用它们。看看这个。
您需要使这两个方法都是静态的,或者创建Main
类的实例并从中调用方法。
声明private static void startremdup(object sender, EventArgs e)
,因为静态方法不能调用实例方法,因为它们没有this
。