调试C#代码而不运行应用程序

时间:2012-06-14 14:30:24

标签: c# visual-studio-2010 debugging

我经常需要调试/测试我的代码或其中的一小部分。

一种方法当然是运行我正在开发的应用程序,或者在开发创建小型测试应用程序的类库时。

另一种方法是创建一个单元测试,仅用于调试目的,并在Visual Studio中运行它。

但是,如果我不想编写额外的代码(如一次性单元测试)并且我不想启动整个应用程序(需要一些时间来启动并导航到我想要调试的代码) ?

有没有办法在Visual Stuio中运行一小部分代码分别解释C#代码?

修改

我知道LINQPad

但有时我想知道,例如Form在运行时的样子或者组件是否能够与数据库通信。因此LINQPad在这些情况下不适合我的需求......

6 个答案:

答案 0 :(得分:8)

我使用linqpad http://www.linqpad.net/来快速测试c#代码。

答案 1 :(得分:3)

另一种选择是下载最新的Roslyn community preview,并使用C# Interactive Window。它是预发布软件,因此它不支持整个C#功能集,但它已经非常接近。

答案 2 :(得分:2)

看看LINQPad。它非常适合尝试代码片段。不要被名字拖延,它支持C#/ F#程序和表达。

答案 3 :(得分:2)

快速测试的另一个选择是Scratchpad.cs。通常,它只是为了尝试一个想法而创建命令行项目。

答案 4 :(得分:2)

查看F# interpreter

我经常使用它来测试小代码样本。

让我们说你有这样的代码:

namespace ConsoleApplication5
{
    public class Test
    {
        public Int32 Sum(int a, int b)
        {
            return a + b;
        }
    }
    ...
}

启动F#Interactive窗口,为程序集添加引用,然后开始调试!

> #I @"C:\PathToYourProject\bin\debug";;
--> Added .... to library include path
> #r "ConsoleApplication5.exe";;
--> Referenced ...
> let t = ConsoleApplication5.Test();;
val t : ConsoleApplication5.Test
> t.Sum(9, 7);;
val it : int = 16
> 

答案 5 :(得分:0)

无论您是否相信,PowerShell都使用.NET框架。您可以从PowerShell调用任何内置的C#类。

假设您正在尝试测试String.Substring方法。

打开PowerShell

然后调用该函数,键入:

"some string".Substring(2,1) # returns 'm'

或者假设您要测试更复杂的内置类

foreach($line in [System.IO.File]::ReadLines("C:\path\to\file.txt"))
{
     $line
}

[System.IO.File]和说using System.IO.File;

是一回事

PowerShell的美丽之处-它是C#的控制台 ...,而且没人知道。