Die Hardware-Community für PC-Spieler - PC GAMES HARDWARE EXTREME

Zurück   Die Hardware-Community für PC-Spieler - PC GAMES HARDWARE EXTREME > Software: Betriebssysteme und Anwendungen > Programmierung und Webdesign

Programmierung und Webdesign Ruby, Java, Perl, C, C++, C# sowie PHP, Mysql, Webserver, CMS, Frameworks und mehr

Antwort
 
LinkBack Themen-Optionen
Alt 18.02.2010, 14:52   #1 (permalink)
Komplett-PC-Aufrüster
 
Benutzerbild von Der Maniac
 
Mitglied seit: 03.06.2009
Beiträge: 237
Standard C# - Leere Variable, wie überprüfen?

Hallo Leute!

Ich rätsel grade dadran wie ich eine leere Variable finden kann und dann ne Fehlermeldung rausgegeben wird?!

Ich habe in meinem Programm (Anhang!) Diverse Programmstellen wo eine Zahleneingabe erwartet wird, kommt hier jedoch ein Buchstabe oder einfach nichts, stürzt das Programm ab, und das möchte ich verhindern!

Weiß jemand wie ich das bewerkstelligen kann?

Den entsprechenden Quellcode evtl. so einfügen dasich es nurnoch kopieren brauch

Danke schonmal fürs Kopf zerbrechen
Angehängte Dateien
Dateityp: 7z Kostenrechner.7z (1,0 KB, 22x aufgerufen)
__________________
AMD Phenom II 940 BE @ 3,4 GHz | Asus Crosshair II Formula | 4x 2GB Kingston HyperX CL4 @ 800 MHz | EVGA GTX260 65nm | 1TB Western Digital Black Caviar | BeQuiet! Dark Power Pro 750W | Creative X-Fi XTreme Music | Creative T Inspire 6100 / Creative Fatal1ty Headset | Asus VW222u und Asus VW225n
Der Maniac ist offline   Mit Zitat antworten
Alt 18.02.2010, 15:33   #2 (permalink)
Software-Overclocker
 
Benutzerbild von bingo88
 
Mitglied seit: 29.09.2008
Beiträge: 1.435
Standard AW: C# - Leere Variable, wie überprüfen?

Hab's jetzt mal ausm Kopf gemacht, müsste aber die Ausnahme vermeiden...
Code:
static void Main()
    {
        int typ;
        Console.Clear();
        Console.WriteLine("************************************************************");
        Console.WriteLine("Bitte waehlen sie den Anwendungstyp aus!");
        Console.WriteLine("Dauerhaft ausfuehren  ==>   1");
        Console.WriteLine("X Mal ausfuehren      ==>   2");
        String input = Console.ReadLine();
        if (input != null)
        {
            typ = Convert.ToInt32(Console.ReadLine());
        }
        Console.WriteLine("************************************************************");

            switch (typ)
            {
                case 1:
                    Dauerhaft();
                    break;

                case 2:
                    X_Mal();
                    break;

                default:
                    Console.WriteLine("Bitte geben Sie NUR eine 1 oder eine 2 ein!");
                    break;
            }
    }
__________________
Eagles may soar high, but weasels don't get sucked into jet engines.
bingo88 ist offline   Mit Zitat antworten
Alt 18.02.2010, 15:55   #3 (permalink)
Komplett-PC-Aufrüster
 
Benutzerbild von Der Maniac
 
Mitglied seit: 03.06.2009
Beiträge: 237
Standard AW: C# - Leere Variable, wie überprüfen?

Das funktioniert fast...^^

Nur mekkert er jetzt das die Variable "Typ" nichtmehr zugewiesenw erden kann... Wenn ich den geschwiften Klammern nach dem if (input...) wegmache, erkennt er typ wieder, allerdings funktioniert dann der rest nicht mehr >.<
__________________
AMD Phenom II 940 BE @ 3,4 GHz | Asus Crosshair II Formula | 4x 2GB Kingston HyperX CL4 @ 800 MHz | EVGA GTX260 65nm | 1TB Western Digital Black Caviar | BeQuiet! Dark Power Pro 750W | Creative X-Fi XTreme Music | Creative T Inspire 6100 / Creative Fatal1ty Headset | Asus VW222u und Asus VW225n
Der Maniac ist offline   Mit Zitat antworten
Alt 18.02.2010, 16:31   #4 (permalink)
Software-Overclocker
 
Benutzerbild von bingo88
 
Mitglied seit: 29.09.2008
Beiträge: 1.435
Standard AW: C# - Leere Variable, wie überprüfen?

Hast du mal versucht, int typ = 0 zu schreiben? Java nörgelt nämlich auch, wenn man auf uninitialisierte Variablen zugreift.
__________________
Eagles may soar high, but weasels don't get sucked into jet engines.
bingo88 ist offline   Mit Zitat antworten
Alt 19.02.2010, 16:54   #5 (permalink)
Komplett-PC-Aufrüster
 
Benutzerbild von rofl...vs...xD
 
Mitglied seit: 22.12.2008
Ort: Österreich
Beiträge: 121
Standard AW: C# - Leere Variable, wie überprüfen?

Das sollte so funktionieren wie du das willst.

Code:
static void Main()
        {
            int typ;
            Console.Clear();
            Console.WriteLine("************************************************************");
            Console.WriteLine("Bitte waehlen sie den Anwendungstyp aus!");
            Console.WriteLine("Dauerhaft ausfuehren  ==>   1");
            Console.WriteLine("X Mal ausfuehren      ==>   2");
            Console.WriteLine("************************************************************");
            String input = Console.ReadLine();
            if (input != "")
            {
                typ = Convert.ToInt32(Console.ReadLine());



                switch (typ)
                {
                    case 1:
                        Dauerhaft();
                        break;

                    case 2:
                        X_Mal();
                        break;

                    default:
                        Console.WriteLine("Bitte geben Sie NUR eine 1 oder eine 2 ein!");
                        break;
                }
            }
            else
            {
                Console.WriteLine("Keine Eingabe");
            }
        }
rofl...vs...xD ist offline   Mit Zitat antworten
Alt 19.02.2010, 16:58   #6 (permalink)
F@H Team Member
 
Benutzerbild von aurionkratos
 
Mitglied seit: 16.06.2008
Ort: Berlin
Beiträge: 1.283
Standard AW: C# - Leere Variable, wie überprüfen?

Wenn jemand z.B. Buchstaben eingibt, haut er dir eine Exception raus. Bitte diese abfangen oder vorher mit Int32.TryParse() überprüfen, ob es parsebar ist. Zweiteres wäre der bessere Weg.

EDIT: außerdem möchtest du sicherlich " typ = Convert.ToInt32(input);" anstatt " typ = Convert.ToInt32(Console.ReadLine());" haben, oder?

EDIT 2: Der erste Absatz ist übrigens auch genau das, was der Threadersteller gesucht hat.
__________________


Geändert von aurionkratos (19.02.2010 um 17:12 Uhr)
aurionkratos ist offline   Mit Zitat antworten
Alt 19.02.2010, 17:23   #7 (permalink)
Komplett-PC-Aufrüster
 
Benutzerbild von rofl...vs...xD
 
Mitglied seit: 22.12.2008
Ort: Österreich
Beiträge: 121
Standard AW: C# - Leere Variable, wie überprüfen?

Zitat:
Zitat von aurionkratos Beitrag anzeigen
Wenn jemand z.B. Buchstaben eingibt, haut er dir eine Exception raus. Bitte diese abfangen oder vorher mit Int32.TryParse() überprüfen, ob es parsebar ist. Zweiteres wäre der bessere Weg.

EDIT: außerdem möchtest du sicherlich " typ = Convert.ToInt32(input);" anstatt " typ = Convert.ToInt32(Console.ReadLine());" haben, oder?

EDIT 2: Der erste Absatz ist übrigens auch genau das, was der Threadersteller gesucht hat.
Du hast schon recht mit Buchstaben usw. ABER das hat der Threadhersteller nicht verlangt.

Ich habe mich nur auf sein Problem beschränkt, obwohl das mit Int32.TryParse(); usw sehr sinnvoll wäre.

Und mit deinem ersten EDIT hast du natürlich vollkommen recht.
rofl...vs...xD ist offline   Mit Zitat antworten
Alt 19.02.2010, 19:26   #8 (permalink)
Software-Overclocker
 
Benutzerbild von bingo88
 
Mitglied seit: 29.09.2008
Beiträge: 1.435
Standard AW: C# - Leere Variable, wie überprüfen?

Das hab ich doch glatt übersehn... kommt davon, wenn man das nicht ausprobiert
__________________
Eagles may soar high, but weasels don't get sucked into jet engines.
bingo88 ist offline   Mit Zitat antworten
Alt 20.02.2010, 14:18   #9 (permalink)
Software-Overclocker
 
Mitglied seit: 03.09.2007
Ort: Earth:\Europe\Italy
Beiträge: 1.163
Standard AW: C# - Leere Variable, wie überprüfen?

Wenn es wirklich nur um eine Unterscheidung zwischen "1", "2", und "Rest" gehen soll, dann sollte doch ein einfacher If-Block wie
Code:
if (input == "1"){
	Dauerhaft();
}
else if (input == "2"){
	X_Mal();
}
else{// if input == alles andere
	Console.WriteLine("Bitte geben Sie eine 1 oder eine 2 ein!");
}
ohne hin- und herkonvertieren sowie Parse-Versuche reichen? Oder ist es für die Aufgabe auch nötig, zwischen einer leeren Eingabe und dem Rest zu unterscheiden?
__________________
Hier könnte Ihre Werbung stehen!
d00mfreak ist offline   Mit Zitat antworten
Alt 24.02.2010, 13:44   #10 (permalink)
Komplett-PC-Aufrüster
 
Benutzerbild von Der Maniac
 
Mitglied seit: 03.06.2009
Beiträge: 237
Standard AW: C# - Leere Variable, wie überprüfen?

So ich melde mich auch noch mal

Folgendes: Das einzige was einwandfrei funktioniert ist die Lösung von d00mfreak, allerdings wollte ich versuchen Switchcase zu verwenden, sieht schöner aus

Die Lösung von Rofl...vs...xD funktioniert fast, bei Zahlen oder einer leeren Eingabe kein Problem, kommt hier aber ein Buchstabe stürzt das ganze wieder ab mit einer Exception...^^ Knapp am Ziel vorbei also...

Das mit dem Parse klingt interessant, kann das hier jemand näher erläutern bzw. erklären was das macht und wie ich es einbinde? Ich mach jetzt seit grade mal 4 Wochen C#...^^

mfg, Maniac
__________________
AMD Phenom II 940 BE @ 3,4 GHz | Asus Crosshair II Formula | 4x 2GB Kingston HyperX CL4 @ 800 MHz | EVGA GTX260 65nm | 1TB Western Digital Black Caviar | BeQuiet! Dark Power Pro 750W | Creative X-Fi XTreme Music | Creative T Inspire 6100 / Creative Fatal1ty Headset | Asus VW222u und Asus VW225n

Geändert von Der Maniac (24.02.2010 um 13:52 Uhr)
Der Maniac ist offline   Mit Zitat antworten
Antwort

Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie leere ich den Firefox Browsercache msdd63 Tools, Anwendungen und Sicherheit 3 12.08.2009 10:04
Windows Seven zeigt leere Programmliste NCphalon Windows XP, Vista, Seven, Windows allgemein 0 05.08.2009 13:22
CPU-Z erzeugt leere Textdatei The-Typhoon Prozessoren 5 14.04.2009 20:07
Batch-Datei - Werte aus Textdatei in eine Variable kopieren? taks Tools, Anwendungen und Sicherheit 7 20.02.2009 16:40
Verknüpfung mit Variable lila Windows XP, Vista, Seven, Windows allgemein 2 20.11.2008 22:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.

 
 
- Top 10 Grafikkarten
- Top 10 Prozessoren
- Top 10 Mainboards
- Top 10 Speicher
- Top 10 Casemodding
- Top 10 Luftkühlung
- Top 10 Wakü
 
 
- Newsletter
- PCGH.de als RSS
- Webshop: Caseking
- Webshop: 3DSupply
Styles:
- PCGHX-Original
- PCGHX-Compact
 

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.0