2012-06-14 48 views
8

Spesso ho bisogno di eseguire il debug/test del mio codice o di una piccola parte di esso.Eseguire il debug del codice C# senza eseguire l'applicazione

Un modo per andare è ovviamente eseguire l'applicazione che sto sviluppando o quando si sviluppa una libreria di classi che crea una piccola applicazione di test.

Un altro modo è creare un unit test solo per scopi di debug ed eseguirlo in Visual Studio.

Ma cosa succede se non voglio scrivere codice aggiuntivo (come test di unità usa e getta) e non voglio avviare l'intera applicazione (richiede un po 'di tempo per iniziare e per navigare verso il codice che voglio eseguire il debug)?

Esiste un modo per eseguire una piccola porzione di codice in Visual Stuio e interpretare rispettivamente il codice C#?

EDIT

so di LINQPad.

Ma a volte voglio sapere per es. come appare Form mentre è in esecuzione o se un componente è in grado di parlare con un database. Quindi LINQPad non soddisfa i miei bisogni in questi casi ...

+1

Questo può essere complicato se il codice dipende da altro codice. Per frammenti indipendenti molto piccoli, perché non creare un progetto da riga di comando da zero e copiare e incollare il codice lì? – Vlad

+0

È possibile utilizzare l'opzione QuickWatch in Visual Studio. Se si desidera testare alcune affermazioni diverse nello stesso codice, inserire un punto di interruzione nella posizione e aprire la finestra di quickwatch. puoi trovare il risultato della dichiarazione scrivendolo nella finestra di quickwatch. –

+0

È un progetto separato? o una parte in un intero progetto? – crassr3cords

risposta

8

Io uso linqpad http://www.linqpad.net/ per testare rapidamente il codice C#.

+0

Lo stavo solo usando per manipolare seriamente le stringhe che avrebbero richiesto un'età nella mia applicazione - è stupendo! – MoonKnight

+1

La versione gratuita non include intellisense, ma se stai copiando il codice da VS non dovrebbe importare .. comunque vale ogni centesimo per la versione completa :) (non affiliato, solo un cliente felice) – Jake1164

+0

Sì, I conoscere e usare linqpad. Ma non puoi, ad es.mostra un 'Windows.Form' per scopi di debug ... –

2

Dai un'occhiata a LINQPad. È eccellente per provare frammenti di codice. Non lasciatevi scoraggiare dal nome, ha il supporto per i programmi e le espressioni C#/F #.

2

Un'altra opzione per il test rapido è Scratchpad.cs. Spesso è meglio che creare progetti a riga di comando solo per provare un'idea.

2

Dai un'occhiata allo F# interpreter.

Lo uso regolarmente per testare piccoli campioni di codice.

Diciamo che avete un po 'di codice come questo:

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

fuoco la finestra F # Interactive, aggiungere un referece alle vostre assemblee, e avviare il debug!

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

Sembra promettente .... –

+0

Ha, funziona abbastanza bene! Ho fatto un rapido test con un form popolato in modo dinamico/popolato attualmente in fase di debug, e ha funzionato! –

Problemi correlati