Отладка кода C# без запуска приложения
Я часто нуждаюсь в отладке / тестировании моего кода или небольшой его части.
один из способов - конечно, запустить приложение, которое я разрабатываю, или при разработке библиотеки классов, создающей небольшое тестовое приложение.
другой способ-создать модульный тест только для отладки и запустить его в Visual Studio.
но что делать, если я не хочу писать дополнительный код (например, одноразовые модульные тесты), и я не хочу начинать весь приложение (требуется некоторое время для запуска и перехода к коду, который я хочу отладить)?
есть ли способ, чтобы выполнить небольшую часть кода в Visual Stuio соответственно интерпретировать код C#?
редактировать
Я знаю, о помощью linqpad.
но иногда я хочу знать, например, как Form
похоже, что во время работы или если компонент может разговаривать с базой данных. Поэтому LINQPad не подходит для моих нужд в этих случаях...
6 ответов
Я использую linqpad http://www.linqpad.net/ для быстрого тестирования кода c#.
другой вариант-загрузить последнюю версию предварительный просмотр сообщества Roslyn, и с Интерактивное Окно C#. Это программное обеспечение предварительного выпуска, поэтому оно не поддерживает весь набор функций C#, но оно становится довольно близким.
посмотреть помощью linqpad. Это супер для фрагментов кода. Не откладывайте имя, оно поддерживает программы и выражения C#/F#.
еще один вариант быстрого тестирования -Блокнот.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 framework. Вы можете вызвать любой встроенный класс C# из PowerShell.
предположим, вы пытаетесь проверить 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#... и никто этого не знает.