2012-06-14 4 views
8

Ich bin oft in der Notwendigkeit, meinen Code oder einen kleinen Teil davon zu debuggen/testen.Debug C# -Code, ohne die Anwendung zu starten

Ein Weg zu gehen ist natürlich, um die Anwendung zu entwickeln, die ich entwickle, oder beim Entwickeln einer Klassenbibliothek, die eine kleine Testanwendung erstellt.

Eine andere Möglichkeit besteht darin, einen Komponententest nur zu Debugzwecken zu erstellen und in Visual Studio auszuführen.

Aber was ist, wenn ich keinen zusätzlichen Code schreiben möchte (wie Einweg-Unit-Tests) und ich nicht die gesamte Anwendung starten möchte (dauert einige Zeit zu starten und zu dem Code zu navigieren, den ich debuggen möchte))

Gibt es eine Möglichkeit, eine kleine Portion Code in Visual Stuio auszuführen oder C# -Code zu interpretieren?

EDIT

Ich weiß über LINQPad.

Aber manchmal möchte ich z.B. Wie sieht ein Form beim Laufen aus oder wenn eine Komponente mit einer Datenbank sprechen kann. Also LINQPad passt nicht meine Bedürfnisse in diesen Fällen ...

+1

Dies kann schwierig sein, wenn der Code von anderem Code abhängig ist. Erstellen Sie für wirklich kleine unabhängige Fragmente ein Command-Line-Projekt von Grund auf und kopieren und fügen Sie den Code dort ein? – Vlad

+0

Sie können die QuickWatch-Option in Visual Studio verwenden. Wenn Sie ein paar verschiedene Anweisungen im selben Code testen möchten, setzen Sie einen Haltepunkt an der Position und öffnen Sie das Quickwatch-Fenster. Sie können das Ergebnis der Anweisung finden, indem Sie es in das Quickwatch-Fenster schreiben. –

+0

Es ist ein separates Projekt? oder ein Teil in einem ganzen Projekt? – crassr3cords

Antwort

8

Ich benutze linqpad http://www.linqpad.net/ für den schnellen Test von C# -Code.

+0

Ich habe es nur benutzt, um eine ernsthafte String-Manipulation zu machen, die in meiner Anwendung ein ganzes Alter erfordert hätte - es ist fantastisch! – MoonKnight

+1

Die kostenlose Version enthält nicht Intellisense, aber wenn Sie Code aus VS kopieren, sollte es egal sein .. aber es ist jeden Cent wert für die Vollversion :) (nicht angegliedert, nur ein glücklicher Kunde) – Jake1164

+0

Ja, ich kenne und benutze linqpad. Aber Sie können z.B.Zeige ein 'Windows.Form' zum Debuggen ... –

2

Werfen Sie einen Blick auf LINQPad. Es ist super zum Ausprobieren von Codeschnipsel. Lassen Sie sich nicht durch den Namen abschrecken, es unterstützt C#/F # Programme und Ausdrücke.

3

Eine andere Möglichkeit ist, die neueste Roslyn community preview herunterzuladen, und haben Sie mit der C# Interactive Window. Es ist eine Pre-Release-Software, die nicht den gesamten C# -Featureset unterstützt, aber es wird ziemlich knapp.

2

Eine weitere Option zum schnellen Testen ist Scratchpad.cs. Oft ist es besser als Befehlszeilenprojekte zu erstellen, nur um eine Idee auszuprobieren.

2

Werfen Sie einen Blick auf die F# interpreter.

Ich verwende es regelmäßig, um kleine Code-Proben zu testen.

Angenommen, Sie haben einen Code wie diese:

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

Feuer eine referece zu Ihren Baugruppen der F # Interactive Fenster, addiert, und starten Sie das Debuggen!

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

Scheint vielversprechend .... –

+0

Ha, das funktioniert ganz gut! Ich habe einen schnellen Test mit einem dynamisch erstellten/befüllten Formular durchgeführt, das ich gerade debugge, und es hat funktioniert! –

Verwandte Themen