Hur i H**** öppnar jag mitt program i VS

Trädvy Permalänk
Medlem
Registrerad
Okt 2007

Hur i H**** öppnar jag mitt program i VS

Kort och gott: hur öppnar jag en .cs-fil? Har knåpat ihop ett program som jag sparat på skrivbordet och vill nu öppna det för att redigera, men icke. Blir så förbannad när det mest simpla ska bråka med en.
Jag kan i och för sig öppna filen genom Open>File men då kan jag inte alls köra det
Och enda sedan jag först började använda VS har jag inte kunnat trycka på "Start" för att köra min kod utan har fått använda mig av CTRL+F5. Det har ändå funkat men varför kan jag inte bara få trycka på "Start"?

Förlåt för min bitterhet!

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Maj 2004

Visual Studio vill ha dina filer i ett projekt, så att det vet vad som skall byggas.
Du skapar ett nytt projekt från "File > New > Project...".
Då du har en ensam cs-fil, så antar jag att det är ett program som är tänkt att köras i konsoll, så då väljer du "Console Application" (under "Installed > Templates > Visual C# > Windows").
När du skapat ditt projekt, så skall du kunna dra din fil från skrivbordet och släppa den i roten av ditt projekt. Observera att ett nytt projekt redan innehåller en fil (Program.cs) där det finns en static void Main, så du måste ta bort den filen för att det inte skall krocka med din nya fil.
Notera även att när du drar in filen från skrivbordet, så kopieras den till din projekt-mapp, så du kan inte göra ändringar i filen på skrivbordet och förvänta dig att den skall ändras i filen i VS.

Angående att köra programmet genom att klicka på start, så antar jag att ditt program startar och stänger sig självt när det är färdigt. Dvs ett konsoll-fönster blinkar förbi lite snabbt på skärmen.
Antingen sätter du en break point på den avslutande måsvingen ( } ) i din Main-metod, eller så lägger du till raden Console.ReadLine(); , som gör att programmet väntar tills du trycker på enter innan det fortsätter (köra klart Main i det här fallet);

as far as we can tell, the massacre went well...

Trädvy Permalänk
Medlem
Registrerad
Okt 2007
Skrivet av jovnas:

Där ser man. Tack som fan!

Har en till fråga som dock är OT men vill inte skapa en tråd till.

Det är som så att jag vill avsluta loopen utan att behöva använda break; Vad är det jag har snurrat till?
Har försökt att skriva "while (tal != slump_tal);" och sen ta bort den sista "else if" men det gick ju inte eftersom "tal" inte finns utanför loopen.

{ Random randomerare = new Random(); int slump_tal = randomerare.Next(1, 101); Console.WriteLine("Gissa på ett tal mellan 1 och 100!"); Console.WriteLine("__________________________________"); Console.WriteLine(); do { Console.Write("Gissa: "); int tal = int.Parse(Console.ReadLine()); if (tal < slump_tal) { Console.WriteLine("Gissa högre"); Console.WriteLine(); } else if (tal > slump_tal) { Console.WriteLine("Gissa lägre"); Console.WriteLine(); } else if (tal == slump_tal) { Console.WriteLine(); Console.WriteLine("Rätt!"); break; } } while (true); } } }

Trädvy Permalänk
Medlem
Plats
Bålsta
Registrerad
Nov 2010
Skrivet av Miikks:

Där ser man. Tack som fan!

Har en till fråga som dock är OT men vill inte skapa en tråd till.

Det är som så att jag vill avsluta loopen utan att behöva använda break; Vad är det jag har snurrat till?

{
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);
Console.WriteLine("Gissa på ett tal mellan 1 och 100!");
Console.WriteLine("__________________________________");
Console.WriteLine();

do
{
Console.Write("Gissa: ");
int tal = int.Parse(Console.ReadLine());

if (tal < slump_tal)
{
Console.WriteLine("Gissa högre");
Console.WriteLine();
}
else if (tal > slump_tal)
{
Console.WriteLine("Gissa lägre");
Console.WriteLine();
}
else if (tal == slump_tal)
{
Console.WriteLine();
Console.WriteLine("Rätt!");
break;
}

}
while (true);
}
}
}

Break är helt legit att använda för att stoppa en loop.
Men i ditt fall kan du använda en bolesk variabel som du använder i din while loop (istället för true). När du sätter din variabel till false så kommer loopen att avslutas.

~. Citera så jag hittar tillbaka .~

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Maj 2004

loopen fortsätter för att du angett while(true). true är ju alltid true, så du behöver använda en variabel istället om du vill avsluta loopen utan att använda break.

bool done = false; do { if (någonting som skall avsluta loopandet) { done = true; } } while(!done);

as far as we can tell, the massacre went well...

Trädvy Permalänk
Medlem
Plats
Norrköping
Registrerad
Jul 2006

@Miikks

Istället för while(true), skapa en bool och ändra den då du vill stoppa loopen.

bool readNumber = true;

while(readNumber)

Sedan sätter du readNumber till false där du gör break;.

R5-1600X, GA-AB-350M-G3, 16GB DDR4 @ 2666, HD7970, Corsair CX650M Rev2

Trädvy Permalänk
Medlem
Registrerad
Okt 2007
Skrivet av KeVVa:
Skrivet av jovnas:
Skrivet av Xeno88:

Tack så HEMSKT mycket. Har suttit hela kvällen med detta men nu kan jag äntligen få sova i frid Tack!