[英]How do I set up an environment to solve LeetCode problems in Visual Studio? C#
制作文件时,我正在考虑选择一个控制台应用程序。 但是我选择哪个目标框架? 这是不正确的吗? 此外,我无法弄清楚如何在类 Program 中创建一个能够在 Main 方法中调用的方法。 有人可以给我一些建议吗?
这将使您开始使用 Visual Studio:
创建一个新的控制台项目——使用最新版本的 C#,这可能是 VS 会“建议”给你的。 目前是 .NET 6 或 .NET 7
现代(net 6 或更高版本)控制台应用程序可让您立即开始编写代码。 您可以创建一个方法,然后直接在您开始使用的这个小 Program.cs 文件中调用该方法。 但是,我可能会改为执行以下操作:
a)为您的“问题”创建一个新类
b) 在该类中创建一个解决问题的方法。
c) 在您的 Program.cs 添加一条 using 语句以使用您的新类使用的命名空间
d)在您的 program.cs 中实例化该类并调用其方法/测试其方法这是一个示例:
using LeetCodeProject;
var solver = new Problem001_CalculateSquareRoot();
var solution = solver.calculate_square_root(8);
Console.WriteLine(solution);
Console.WriteLine("Press any key...");
Console.ReadKey();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LeetCodeProject
{
public class Problem001_CalculateSquareRoot
{
public double calculate_square_root(int number)
{
double root = 1;
int i = 0;
while (true)
{
i = i + 1;
root = (number / root + root) / 2;
if (i == number + 1)
{
break;
}
}
return root;
}
}
}
现在您可以为每个问题添加新类,并且在处理它们时只需编辑 Program.cs 以创建您当前正在使用的类并调用其解决方法。
我可以(并且会——实际上在类似的情况下)为此实现一个接口,但这里的目标不是进入 OO 设计原则,而是让你开始,这样你就可以开始解决 leetcode 问题。 ..一旦你完成了一些,你就可以开始考虑更好地组织代码。
您可以做的一件事是使用界面来保持代码干净; 例如 :
你创建一个这样的界面:
public interface IQuestionSolving
{
public void Solution();
}
你创建了一些问题类:
public class Question1 : IQuestionSolving
{
public void Solution()
{
}
}
你像这样使用它:
static void Main(string[] args)
{
IQuestionSolving solve = new Question1();
solve.Solution();
Console.ReadKey();
}
现在每次你解决一个问题你都需要改变
IQuestionSolving solve = new Question1();
至
IQuestionSolving solve = new Question2(); // 2 3 4 .. etc
您可以将您的项目提取为模板,这样您就不必每次都这样做。 或者您可以只使用一种解决方案和许多类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.