gpt4 book ai didi

c# - 是将要从 main() 调用的所有方法声明为静态的还是创建一个包含包括 main 在内的所有方法的类的对象更好?

转载 作者:太空宇宙 更新时间:2023-11-03 20:50:29 25 4
gpt4 key购买 nike

我需要大致了解在以下情况下哪种方式更受欢迎:

我在“程序”类中有主要功能以及一些其他功能。我已经将我的逻辑分解为函数并从我的 main.

现在要从我的 main 调用函数,我有两个选择:

1 - 将所有方法设为静态

2 - 在 main() 中创建类“Program”的对象并调用 object.Method()

我想学习我 future 所有编码工作的首选方式

我有类似的东西


class Program
{
public static void main()
{
CheckFile();
ReadFiles();
PushToDB();
}

private bool CheckFile() {...}

private string[] ReadFiles() {...}

private string PushToDB() {...}
}

最佳答案

长话短说最好将您的代码放在自己的类中,而不是直接放在控制台应用程序中,除非它很琐碎。


在实际可行的范围内,我们的代码不应该知道它是否在控制台应用程序、网络应用程序等中执行。

因此,虽然没有一些规则,但这里有一个关于将代码放在何处的建议:

  • 最好 - 创建一个单独的类库并将您的类放在那里。
  • 第二好 - 创建单元测试应用程序并将您的类(class)放在那里。您可以稍后移动它。
  • 第三佳 - 在您的控制台应用程序中创建一个单独的类。您可以稍后移动它。
  • 遥远的第四,不理想:将它直接放在您的 Program 类中。

之所以将它放在一个单独的类库中有帮助,是因为它可以帮助您避免在您的类中意外写入控制台输出 (Console.WriteLine),因为您的类不知道无论是在控制台应用程序中还是在其他地方执行。

无论您将类放在哪里,单独的类都更好,因为它鼓励您将小功能分解为单独的单元。我并不是说我们需要对此完全严格,但它确实让生活更轻松。

例如,您可能想要创建一个只执行 ReadFiles 部分的类,另一个用于 PushToDb 部分。如果您创建这样的类:

public class FileReader
{
public string[] ReadFile(string filePath)
{
// read some files and populate some data
}
}

然后只测试其中的一部分就容易多了。当我们编写所有这些时,我们将在读取数据的部分和将数据保存到数据库的部分中犯一些小错误。这使我们能够一次只处理一个部分,并在进入下一部分之前对其进行测试,而不是试图同时处理两个部分。

我之所以提到单元测试项目,是因为在单元测试项目中测试单个代码片段比在控制台应用程序中测试更容易。如果您想在控制台应用程序中测试一段代码,您必须对其进行编辑以运行该部分,然后再次编辑以运行该部分,依此类推。

但是如果您编写单元测试,那么您可以运行一个测试,运行另一个测试,再次运行第一个测试,或者一起运行所有测试。与控制台应用程序不同,您不必不断修改代码来告诉它运行哪个部分。

而且,虽然我没有在这个答案中包含任何关于单元测试的真正解释,但这是一个非常好的习惯。当我不断编写控制台应用程序来测试我的代码时,我希望我多年来一直知道它们。单元测试是一个很棒的习惯,有些像我这样的开发人员学得晚,有些则永远学不会。如果您及早养成这个习惯,您以后的编码会变得更加有趣和轻松。

关于c# - 是将要从 main() 调用的所有方法声明为静态的还是创建一个包含包括 main 在内的所有方法的类的对象更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55884481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com