2012-06-14 8 views
8

Мне часто приходится отлаживать/тестировать мой код или его небольшую часть.Отладка кода C# без запуска приложения

Один из способов, конечно, запустить приложение, которое я разрабатываю, или при разработке библиотеки классов, создающей небольшое тестовое приложение.

Другой способ - создать единичный тест только для цели отладки и запустить его в Visual Studio.

Но что, если я не хочу писать дополнительный код (например, одноразовые модульные тесты), и я не хочу запускать все приложение (требуется некоторое время для запуска и перехода к коду, который я хочу отлаживать)?

Есть ли способ запустить небольшую часть кода в Visual Stuio, соответственно интерпретировать код C#?

EDIT

Я знаю о LINQPad.

Но иногда я хочу знать, например. как выглядит Form во время работы или если компонент может разговаривать с базой данных. Поэтому LINQPad не удовлетворяет моим потребностям в этих случаях ...

+1

Это может быть сложно, если код зависит от другого кода. Для действительно небольших независимых фрагментов, почему бы не создать проект командной строки с нуля и скопировать и вставить код там? – Vlad

+0

Вы можете использовать опцию QuickWatch в визуальной студии. Если вы хотите протестировать несколько разных операторов в одном коде, установите точку останова в позиции и откройте окно быстрого просмотра. вы можете найти результат заявления, записав его в окне быстрого просмотра. –

+0

Это отдельный проект? или часть в целом проекте? – crassr3cords

ответ

8

Я использую linqpad http://www.linqpad.net/ для быстрого тестирования кода C#.

+0

Я просто использовал его для выполнения серьезных манипуляций с строкой, которые потребовались бы для моего приложения - это просто! – MoonKnight

+1

Бесплатная версия не включает intellisense, но если вы копируете код из VS, это не имеет значения .. однако его ценность каждый пенни для полной версии :) (не связанный, просто счастливый клиент) – Jake1164

+0

Да, я знать и использовать linqpad. Но вы не можете, например.показать 'Windows.Form' для цели отладки ... –

2

Посмотрите на LINQPad. Это супер для тестирования фрагментов кода. Не откладывайте имя, он поддерживает программы и выражения C#/F #.

3

Другой вариант - загрузить последние Roslyn community preview, и у него есть C# Interactive Window. Это предварительная версия программного обеспечения, поэтому она не поддерживает весь набор функций C#, но она приближается.

2

Другим вариантом для быстрого тестирования является Scratchpad.cs. Часто это лучше, чем создание проектов командной строки, просто для того, чтобы попробовать идею.

2

Посмотрите на F# interpreter.

Я использую его для проверки небольших образцов кода.

Допустим, у вас есть код вроде этого:

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

запустит окно F # Interactive, добавить Referece в сборки, и начать отладку!

> #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 
> 
+0

Кажется перспективным .... –

+0

Ха, это работает неплохо! Я сделал быстрый тест с динамически созданной/заполненной формой, которую я сейчас отлаживаю, и это сработало! –

Смежные вопросы