在不运行应用程序的情况下调试 C# 代码
本文关键字:调试 代码 情况下 运行 应用程序 | 更新日期: 2023-09-27 18:37:24
我经常需要调试/测试我的代码或其中的一小部分。
一种方法当然是运行我正在开发的应用程序,或者在开发类库时创建一个小型测试应用程序。
另一种方法是创建一个仅用于调试目的的单元测试,并在Visual Studio中运行它。
但是,如果我不想编写其他代码(如一次性单元测试)并且不想启动整个应用程序(需要一些时间来启动并导航到要调试的代码)怎么办?
有没有办法在Visual Stuio中运行一小部分代码来分别解释C#代码?
编辑
我知道 LINQPad。
但有时我想知道例如,Form
运行时的外观,或者组件是否能够与数据库通信。所以在这些情况下,LINQPad 不适合我的需求......
我使用 linqpad http://www.linqpad.net/快速测试 c# 代码。
另一种选择是下载最新的 Roslyn 社区预览版,并使用 C# 交互式窗口进行下载。 它是预发布软件,因此它不支持整个 C# 功能集,但它已经非常接近了。
看看 LINQPad。它非常适合尝试代码片段。不要被这个名字吓倒,它支持 C#/F# 程序和表达式。
快速测试的另一个选项是Scratchpad.cs。通常,它比仅仅为了尝试一个想法而创建命令行项目要好。
看看 F# 解释器。
我经常使用它来测试小代码示例。
假设您有一些这样的代码:
namespace ConsoleApplication5
{
public class Test
{
public Int32 Sum(int a, int b)
{
return a + b;
}
}
...
}
启动 F# 交互窗口,向程序集添加引用,然后开始调试!
> #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
>
不管你信不信,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# 的控制台......没有人知道。