是否可以使用 Main 方法在 C# 中执行任意类,类似于 Java 中的方法

本文关键字:方法 任意类 类似于 Java 执行 可以使 Main 是否 | 更新日期: 2023-09-27 18:32:14

我最近不得不迁移到C#世界。来自Java领域,我可以向任何类添加一个public static void main(String[] args)方法,并选择从Eclipse/Netbeans运行该类,用于我想快速测试的任何代码/逻辑。

在C#.Net/Visual Studio中是否有等效的功能?我已经尝试这样做,我能做的最好的事情就是通过命令提示符通过csc.exe执行它。但是,由于某种原因,它抱怨找不到相关的 DLL - 它似乎希望完全隔离地运行该类,而不依赖于"外部代码"(即驻留在该类所在的 VS 项目/解决方案中的代码)。

此功能的原因:所有项目文件都标记为类库,有时我只想检查一组特定的方法/数据/逻辑是否可以在当前代码库中按预期工作。在 Java 中,我会在 main 方法中快速编写它并执行该类以查看它是如何进行的,然后再将其提交到版本控制。但是,似乎没有简单的方法来触发"my class"的执行,所有依赖项都由csc.exe正确处理

当前解决方案:将此测试代码添加到单元测试项目中,并选择执行该特定"测试",以检查该想法是否正常工作(它可能会触发数据库调用或 Web 服务类等,而不是纯粹的逻辑计算流)。这似乎工作正常,是我目前的工作方式。我想知道Main方法是否可行/推荐。

:这在 C#/VS 中是否可行或不推荐?

更新:我不能仅仅为了实现这一点而添加控制台项目,因为项目的添加由源代码管理团队严格控制。因此,Main方法"黑客"的问题,用于快速和肮脏的检查/测试。

是否可以使用 Main 方法在 C# 中执行任意类,类似于 Java 中的方法

项目类型需要为控制台应用程序才能"识别"Program.Main 方法,而不是类库。目的是使类库成为一组封装的功能,只能由设置为允许用户输入的项目访问。这些可以是控制台应用程序、Web 项目 (MVC/API) 或桌面 (WPF)。

如果只想针对类库项目中的代码执行测试,还可以创建单元测试项目,添加引用并针对要实现的功能执行非常显式的测试。

您可以通过在自己喜欢的文本编辑器中检查 .csproj 文件来找出不同项目类型之间的差异。

在Visual Studio中转到New->Project然后选择Console Application(在VS2015的Windows''Classic Desktop中)。 这为您提供了一个基本的控制台应用程序,其中包含...

static void Main(string[] args)
{
}

设置并准备就绪。 但是,对于简单的尝试代码,您可能会发现这很麻烦(创建一个新项目和文件夹只是为了测试代码)和测试代码(不依赖于现有库),您可以使用类似 .NET Fiddle 的东西......

https://dotnetfiddle.net/

您可以在其中快速创建和测试代码并通过浏览器运行它。