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

时间:2016-01-27 19:46:20

标签: c#

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

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

此功能的原因:所有项目文件都标记为类库,有时我只想检查一组特定的方法/数据/逻辑是否能够按照预期的当前代码库运行。在Java中,我会在main方法中快速编写它并执行该类,以便在将其提交到版本控制之前查看它。然而,似乎没有简单的方法来触发"我的班级"所有依赖项由csc.exe

正确处理

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

问题:这是否可以使用C#/ VS或不推荐?

更新:我无法添加控制台项目只是为了实现这一目标,因为项目的添加由源控制团队严格控制。因此Main方法问题' hack'用于快速和脏的检查/测试。

2 个答案:

答案 0 :(得分:2)

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

如果您只想对类库项目中的代码执行测试,您还可以创建单元测试项目,添加引用并针对您希望实现的功能执行非常明确的测试。 / p>

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

答案 1 :(得分:0)

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

static void Main(string[] args)
{
}

设置并准备好了。然而,对于简单地尝试代码,你可能会发现这很麻烦(创建一个新的项目和文件夹只是为了测试代码)和测试代码(不依赖于现有的库)你可以使用像.NET Fiddle ......

https://dotnetfiddle.net/

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