Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[C#]Commands Maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
GoedenAvond,

Ik Ben bezig met me eigen Console App in C# maar 1 ding wil nog niet helemaal lukken:
Dit is mijn code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome To: CommandCenter");

            commands();
        }

        static void commands()
        {
            string Line = Console.ReadLine();
            switch (Line)
            {
                case "commands":
                    {
                        Console.WriteLine("nothing jet");
                        break;
                    }

            }
        }
    }
}


Als ik het programma dan uitvoer doet hij het wel enzo maar als ik dan niks in vul of een commando dat niet in het script staat dan staat er: druk op een toets om door te gaan. en als ik dan op een toets druk valt mijn programma uit. ik heb dit al op verschillende manieren geprobeerd optelossen maar geen 1 werkte 100%. of je zag het ook als het een goede commando was of je zach niks of ik kreeg heel veel errors. Kan iemand de oplossing uitleggen?

Groeten, Toetska

  • Wmm
  • Registratie: Maart 2002
  • Laatst online: 16:34

Wmm

Dat komt omdat je programma hoe dan ook afgelopen is het lezen van de 1e regel die jij typt. "Druk op een toets om door te gaan" is het standaard antwoord dat komt in zo'n box, sterker nog, dat is Visual Studio die dat voor je doet. Voer je de exe direct uit dan krijg je dat niet.

Anyway, je zult een while lus moeten maken om te zorgen dat je weer opnieuw kunt typen en default gebruiken in je switch om een standaard reactie te geven op slechte imput. Dit is eigenlijk basic stuff dat in veel tutorials / boeken staat. Overigens is het handig te vermelden wat je zelf geprobeerd hebt, nu moeten wij in onze kristallen bol kijken wat je geprobeerd hebt en wat niet werkt.

[ Voor 9% gewijzigd door Wmm op 30-07-2008 22:19 ]


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome To: CommandCenter");

            while(true)
                commands();
        }

        static void commands()
        {
            string Line = Console.ReadLine();
            switch (Line)
            {
                case "commands":
                        Console.WriteLine("nothing jet");
                        break;
                default: 
                        Console.WriteLine("unknown command");

            }
        }
    }
}

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Verwijderd

Topicstarter
Bedank Grijzen Vos.

@Wmm

Sorry Ik vind het nog een beetje moeilijk uitleggen omdat ik er pas een week mee bezig ben.

  • Wmm
  • Registratie: Maart 2002
  • Laatst online: 16:34

Wmm

Dat snap ik :). Maar op GoT is het wel de bedoeling dat je aangeeft wat je geprobeerd hebt, lees daarvoor ook even Welkom in Programming - FAQ en Beleid.

Anyway, wat ik zei is dus precies wat Grijze Vos helemaal voor je uit typt in code, hoewel het niet de meest nette oplossing is. Je programma stopt nu nooit, maar dat is een uitdaging voor jou om op te lossen ooit ;).

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17-11 08:45

Haan

dotnetter

offtopic:
het is niet 'jet' maar 'yet'

Maar je moet dus eigenlijk een bepaalde string (bijvoorbeeld "q", (van quit ;) ) reserveren om de applicatie te kunnen stoppen.

Dan gebruik je een boolean variabele die true is zolang er niet op q wordt gedrukt, ipv while(true). In je switch voeg je dan een case "q" toe, die die boolean op false zet, zodat je programma stopt :)

[ Voor 16% gewijzigd door Haan op 30-07-2008 23:28 ]

Kater? Eerst water, de rest komt later


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Haan schreef op woensdag 30 juli 2008 @ 23:27:
offtopic:
het is niet 'jet' maar 'yet'

Maar je moet dus eigenlijk een bepaalde string (bijvoorbeeld "q", (van quit ;) ) reserveren om de applicatie te kunnen stoppen.

Dan gebruik je een boolean variabele die true is zolang er niet op q wordt gedrukt, ipv while(true). In je switch voeg je dan een case "q" toe, die die boolean op false zet, zodat je programma stopt :)
Of je gooit achter de "q" switch gewoon een thread.exit() :Y)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

...

[ Voor 98% gewijzigd door Niemand_Anders op 31-07-2008 08:07 ]

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
Dankje Wel Iedreen ik heb weer wat geleerd!

  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

RobIII schreef op donderdag 31 juli 2008 @ 00:47:
[...]

Of je gooit achter de "q" switch gewoon een thread.exit() :Y)
Beetje Offtopic, maar werkt dit in C#? Heb er zelf nooit bij stilgestaan dat je altijd in een thread draait en die dus kan killen.. Dit los ik normaal altijd op met een of ander boolean vlaggetje.

Hoewel je natuurlijk ook kan discussieren of je geen spagetti krijgt met thread.exit in je code, maar goed

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Maar doe het dan wel goed: System.Environment.Exit(exitCode)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
.Gertjan. schreef op donderdag 31 juli 2008 @ 21:42:
[...]


Beetje Offtopic, maar werkt dit in C#? Heb er zelf nooit bij stilgestaan dat je altijd in een thread draait en die dus kan killen.. Dit los ik normaal altijd op met een of ander boolean vlaggetje.

Hoewel je natuurlijk ook kan discussieren of je geen spagetti krijgt met thread.exit in je code, maar goed
Het was ook een beetje met een knipoog bedoeld; of het netjes is valt over te twisten (ik zou het zelf niet zo gauw gebruiken).
wasigh schreef op donderdag 31 juli 2008 @ 21:50:
Maar doe het dan wel goed: System.Environment.Exit(exitCode)
Uiteraard. Thread.Exit() bestaat niet eens :P (my bad, was even zo uit de losse pols). Application.Exit() overigens wel, maar dat is van toepassing op Winforms projecten.

[ Voor 22% gewijzigd door RobIII op 31-07-2008 22:03 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1