2

这些天我从 Java 转向 C#,并使用 Visual C# 2010 express。

有时我想编写和测试一些简单的代码,但我发现它不像在 Eclipse 中那么容易:main在任何 java 文件中编写一个方法,然后运行它。

在 VC# 中,当我Main在 .cs 文件中添加一个方法时,它会注意到我在这个项目中有两个Main条目。我必须在运行之前重命名另一个,并且稍后必须重命名它。

是否有捷径可寻?

4

5 回答 5

2

Visual Studio 更适合大型项目。如果您只是想测试一些代码,那么我要么将其粘贴在您的应用程序的主要方法中,要么忘记 VS 并通过代码暂存器运行它。

最好的 C# 代码暂存器是LINQPad

当然,如果您要进行大量测试,您可能需要删除代码所具有的任何依赖项。如果不知道代码的范围或项目的类型,就很难说。

于 2012-07-31T08:13:00.507 回答
1

正如@Alexander R 所说,LINQPad 是一个很棒的工具。我将它广泛用于小片段,例如测试我发布到 Stack Overflow 的答案。

如果我必须能够在我当前的项目中调用其他代码,我会在我的解决方案中添加一个单元测试项目。当我想测试一些东西时,我在一个新的测试方法中编写代码,然后使用 Ctrl+R、Ctrl+T 快捷键运行当前选择的测试方法。

于 2012-07-31T08:15:01.907 回答
1

单声道编译器包括一个 REPL 实用程序 ( http://www.mono-project.com/CsharpRepl )。类似的东西应该包含在 C#/Visual Studio 的未来版本中(请参阅Roslyn 项目的最新 CTP )。

另一种可能性是“测试驱动的 .Net”实用程序,但这不适用于 Visual Studio express。它 (ao) 允许您直接从 Visual Studio 中运行任何方法。

LINQPad 和 Snippet Compiler 也是可行的选择。

您也可以简单地创建一个 .cs 文件并在命令行上编译它。例如,将此代码放在名为 hello.cs 的文件中

using System;

public class Program {
    public static void Main() {
        Console.WriteLine("Hello World");
    }
}

然后在命令行上,编译csc hello.cs

=> 这会创建你可以运行的 hello.exe。

于 2012-07-31T08:28:57.533 回答
0

在 VC# 中,当我在 .cs 文件中添加 Main 方法时,它会注意到我在这个项目中有两个 Main 条目。

然后不要添加其他main方法。当您创建控制台或 WinForms 应用程序时,文件 Program.cs 将包含一个 main 方法。如果您想测试某些东西,例如您编写的类,只需在现有的 main 方法中实例化该类即可。

于 2012-07-31T08:37:49.160 回答
0

作为解决方案,为什么不向要测试的每个类添加公共 testXXXX() 方法,然后使用 1 个主要方法来调用这些 testXXXX() 方法。

于 2012-07-31T15:50:00.220 回答