这些天我从 Java 转向 C#,并使用 Visual C# 2010 express。
有时我想编写和测试一些简单的代码,但我发现它不像在 Eclipse 中那么容易:main
在任何 java 文件中编写一个方法,然后运行它。
在 VC# 中,当我Main
在 .cs 文件中添加一个方法时,它会注意到我在这个项目中有两个Main
条目。我必须在运行之前重命名另一个,并且稍后必须重命名它。
是否有捷径可寻?
这些天我从 Java 转向 C#,并使用 Visual C# 2010 express。
有时我想编写和测试一些简单的代码,但我发现它不像在 Eclipse 中那么容易:main
在任何 java 文件中编写一个方法,然后运行它。
在 VC# 中,当我Main
在 .cs 文件中添加一个方法时,它会注意到我在这个项目中有两个Main
条目。我必须在运行之前重命名另一个,并且稍后必须重命名它。
是否有捷径可寻?
Visual Studio 更适合大型项目。如果您只是想测试一些代码,那么我要么将其粘贴在您的应用程序的主要方法中,要么忘记 VS 并通过代码暂存器运行它。
最好的 C# 代码暂存器是LINQPad
当然,如果您要进行大量测试,您可能需要删除代码所具有的任何依赖项。如果不知道代码的范围或项目的类型,就很难说。
正如@Alexander R 所说,LINQPad 是一个很棒的工具。我将它广泛用于小片段,例如测试我发布到 Stack Overflow 的答案。
如果我必须能够在我当前的项目中调用其他代码,我会在我的解决方案中添加一个单元测试项目。当我想测试一些东西时,我在一个新的测试方法中编写代码,然后使用 Ctrl+R、Ctrl+T 快捷键运行当前选择的测试方法。
单声道编译器包括一个 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。
在 VC# 中,当我在 .cs 文件中添加 Main 方法时,它会注意到我在这个项目中有两个 Main 条目。
然后不要添加其他main
方法。当您创建控制台或 WinForms 应用程序时,文件 Program.cs 将包含一个 main 方法。如果您想测试某些东西,例如您编写的类,只需在现有的 main 方法中实例化该类即可。
作为解决方案,为什么不向要测试的每个类添加公共 testXXXX() 方法,然后使用 1 个主要方法来调用这些 testXXXX() 方法。