Sto scrivendo un C# applicazione console che prende 2 parametri: myprogram.exe param1 param2
C# - Console.In.ReadToEnd() si blocca su input dell'utente, se non ci sono dati in filodiffusione per programmare
param2
è facoltativo, e l'idea è che se non è presente, ottenere i dati in filodiffusione:
echo "hithere" | myprogram.exe param1
ho fatto questo lavoro parte catturando Console.In.ReadToEnd()
quando viene passato solo 1 parametro.
Il problema che sto affrontando è quando solo 1 parametro viene passato e nessun dato viene convogliata, ma appena ci si siede ad ascoltare l'input dell'utente e l'unico modo per chiudere è quello di Ctrl+C
per terminare il programma.
Invece, c'è un modo per restituire un errore e uscire dal programma se solo 1 parametro è stato fornito e nessun dato è stato convogliato?
Per testare se c'è qualcosa di attesa, ho provato ad utilizzare:
Console.OpenStandardInput().CanRead
Console.OpenStandardInput().Length
Console.In.Peek()
che non ha funzionato.
Ho anche provato il 'incidere' menzionato in fondo a questa domanda StackOverflow: C# Console receive input with pipe.
Qualche idea?
Se riformattate la vostra domanda in modo che non sembri un muro di testo, penso che otterrete più persone a leggerlo. –
Sono d'accordo con Mark, è un vero e proprio dolore per leggere ... –
ho riformattato ora. Spero che sia meno scoraggiante da leggere. – Matt