Krux med debug i Visual C# 2010 Express

Permalänk

Krux med debug i Visual C# 2010 Express

Hej alla!

Det är så att jag är en fullkomlig nybörjare med det här med programmering. Försöker i skrivande stund plöja genom diverse programmeringsböcker (for dummies etcetra), men redan vid första kapitlet stöter jag på problem, som inte nämns i boken.

När jag skrivit följande kod i Visual C# 2010 Express, i Windows Forms Application trycker jag "build solution" och stöter inte på några problem:

kod:

using System;

namespace Program1
{
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world");
}
}
}

Men när jag väl ska debugga det, så händer inget. Jag som trodde att det skulle komma upp en ruta med själva texten "hello world". Kolumnerna hoppar till lite i Visual C# 2010 Express men inte mer. Ej heller fungerar det att köra "start without debugging".

Eller behöver jag ladda ner något ytterliggare tillägg för att allt ska fungera?

Sjukt tacksam för svar, verkligen, sjukt tacksam.

Permalänk
Medlem

Programmet du har där skriver snabbt ut "Hello World" och avslutas. När koden är slut så avslutas programmet. Du behöver lägga till något som Console.ReadKey() eller Console.ReadLine() efter för att den ska vänta på ett knappytryck innan programmet avsultas, alternativt starta debugen med ctrl+f5 så lägger dom automatiskt till en ReadKey på slutet.

Permalänk
Medlem
Skrivet av Slajmboll:

Hej alla!

Det är så att jag är en fullkomlig nybörjare med det här med programmering. Försöker i skrivande stund plöja genom diverse programmeringsböcker (for dummies etcetra), men redan vid första kapitlet stöter jag på problem, som inte nämns i boken.

När jag skrivit följande kod i Visual C# 2010 Express, i Windows Forms Application trycker jag "build solution" och stöter inte på några problem:

kod:

using System;

namespace Program1
{
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world");
}
}
}

Men när jag väl ska debugga det, så händer inget. Jag som trodde att det skulle komma upp en ruta med själva texten "hello world". Kolumnerna hoppar till lite i Visual C# 2010 Express men inte mer. Ej heller fungerar det att köra "start without debugging".

Eller behöver jag ladda ner något ytterliggare tillägg för att allt ska fungera?

Sjukt tacksam för svar, verkligen, sjukt tacksam.

Inte lekt med C# och console program men har för mig att fönstret försvinner så fort programmet är klart så det du måste göra är att antingen pausa fönstret eller göra så att den skall vänta med input innan den avslutar programmet.

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk

Hmm, men gör inte funktionen "start without debugging" så att programmet stannar kvar?

Enligt "Dummies, C# All in One" så ger de följande exempel:

using System;
namespace Program1
{
public class Program
{
// This is where your program starts.
static void Main(string[] args)
{
// Prompt user to enter a name.
Console.WriteLine(“Enter your name, please:”);
// Now read the name entered.
string name = Console.ReadLine();
// Greet the user with the name that was entered.
Console.WriteLine(“Hello, “ + name);
// Wait for user to acknowledge the results.
Console.WriteLine(“Press Enter to terminate...”);
Console.Read();
}
}
}

Där programmet ska köras som "start without debugging", för att visas som sig bör utan att startas och avslutas direkt. Men för mig var det samma sak när jag testade mig på den koden, att kolumnerna ändrade sig lite snabbt, för att sedan återgå, utan att att något annat hände. =/. Behövs det någon slags "NET Software Development Kit" (som nämns i boken), tänkte mest på att det antagligen var inkluderat i programmet Visual C# 2010 Express.

Haha, jag hoppas att man blir bättre på programmering iaf. För mig känns allt väldigt, väldigt främmande.

Permalänk
Medlem

Du missar bara att anropa Console.ReadKey(); Det händer något men programmet flimrar bara (dyker upp och försvinner igen). Så lägg bara till

Console.ReadKey();

Efter din "Console.WriteLine" eller "Write", det bör göra att programmet inte försvinner efter att build och debug har blivit genomfört.

Koden blir:

using System; namespace Program1 { public class Program { static void Main(string[] args) { Console.WriteLine("Hello world"); Console.ReadKey(); } } } Alternativt: using System; namespace ConsoleApplication1 { //Klassen startar här class Program { //En string med text static string hello = "Hello World!"; //Här börjar funktionen static void Main(string[] args) { //Här är själva koden Console.WriteLine("{0}", hello); //Här pausar vi programmet från att stängas Console.ReadKey(); //Här stängs programmet } } }

När Main metoden är genomläst så avslutas programmet.

ReadLine behöver du inte använda eftersom den läser från tangentbordet men pausar såklart men ReadKey är den du ska använda för att pausa programmet, den väntar på 1 knapptryck (oavsett vilken) för att avsluta programmet (Console Application läser uppifrån och ner som en bok och när texten är slut så stänger den igen boken för då har den utfört sitt jobb olikt en Windows Application som har användarvalet "Stäng").

Och build solution kommer inte ge dig några svar eftersom Build Solution (CTRL + Shift + B) enbart kollar efter fel i koden, inte misstag som att exkludera koder (om inte exkl. kod leder till fel). Debug å andra sidan laddar programmet och startar det (men bygger programmet innan med Build).

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40

Permalänk

Har du tryckt dit en break point?

Permalänk
Medlem

Mja en BreakPoint borde inte göra så att h*n inte kan starta programmet.

Dessutom vore en BreakPoint ganska onödigt i en sådan applikation som är så liten och kan inte visa texten "Hello World!" om den är satt på/före/efter WriteLine'n i Main funktionen så kommer det ändå inte fungera, då bör du få en error som säger "A breakpoint could not be inserted at this location".. Kolumnerna flyttar dels på sig för att visa Autos bredvid Output alt. inte visa dom alls.

Problemet ligger enbart i att han inte pausar applikationen på ett lämpligt sätt.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
AzireVPN - Felkod40