Отладка кода 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#... и никто этого не знает.