Kezdőoldal » Számítástechnika » Programozás » Hogy tudom leellenőrizni...

Hogy tudom leellenőrizni C#-ban, hogy a bekért szám string-e?

Figyelt kérdés

Úgy értem, hogyha elrontaná valaki az adat megadását, és szám helyett stringet ír, akkor hogy oldjam meg azt, hogy azt ne a fejlesztői környezet debugja, vagy a windows érzékelje, hanem én egy ifben?

Egyesével minden lehetőségre nem csinálhatok egy-egy ifet, mert az ugye végtelen sok variáció...

Nincs valamilyen lehetőség egy változó típusának lekérdezésére?



2015. jan. 26. 22:27
1 2 3
 11/30 anonim ***** válasza:
A megoldásod ugyan működhet, azonban felhasználóbarátnak kicsit sem nevezném. Azon kívül, hogy össze-vissza public, static minden így jobb lenne: [link]
2015. jan. 30. 03:15
Hasznos számodra ez a válasz?
 12/30 A kérdező kommentje:

nem kell ide public static! :D

nézd meg akkor az enyémet! szerintem ez így is pont ugyanolyan egyszerű..

itt vannak a függvényeim, amiket használtam:

[link]

a main az csak 2 képbe fért bele:

[link]

[link]

2015. jan. 30. 16:02
 13/30 A kérdező kommentje:
mondjuk az enyémben a kód nagy része az nem a debug, de majdcsak megtaláljátok :D
2015. jan. 30. 16:04
 14/30 SimkoL ***** válasza:
Csak téged tudlak idézni: ' Hülye vagy te fiacskám".
2015. jan. 30. 17:40
Hasznos számodra ez a válasz?
 15/30 A kérdező kommentje:

csak poénosra vettem a debugot, na! :D

de te most pontosan mit is kritizálsz ebben?!

2015. jan. 30. 17:54
 16/30 anonim ***** válasza:

String ellenőrzéseket lecserélném enumokra, a GOTO-kat kivenném, valamint oda ahol a szám ellenőrzés van bevezetnék egy bool-t visszaadó függvényt amit két okkból tennék:

1: Ha máshol is használni akarom csúnya hosszú lesz a kód

2: Ugye tudod, hogy egy 10 számjegyű számnál 10-szer konvertálod át a stringet számmá és adod értékül a szám változódnak? Ami még rosszabb, hogy ha első karakter szám a többi 9 betű akkor is elkezdi konvertálni és újra a windows fogja kezelni a kivételt ami rendszerint a program összeomlását jelenti.

A Console.ReadLine() pedig stringel tér vissza nem kell konvertálni.

2015. jan. 30. 18:00
Hasznos számodra ez a válasz?
 17/30 SimkoL ***** válasza:
Bár nagyon nem csípem a .NET-es nyelveket de rengeteg függvényük van csak utána kell olvasni. Amit már más megírt.... ne küzdj hanem tanulj, nézz utána. Ismerkedj meg a tömbökkel , halmazokkal.
2015. jan. 30. 18:10
Hasznos számodra ez a válasz?
 18/30 A kérdező kommentje:

#16!

a goto azért kell, hogy folytonos legyen a program futása

és ha az első karakter szám, a többi betű, valóban átkonvertálja, VISZONT: a debug változónak meg a "BUG" szöveget fogja adni, és a lentebbi ifben szerepel, hogyha "BUG", akkor kész, vége, visszaugrik az elejére

de ha átkonvertál egy stringet számmá, ott még nincs gond, amíg azt nem akarjuk használni... ha egy hibás számra (ami itt string :D) hivatkozol, ott fog csak kicrashelni!! vágod? :P

mellesleg én azóta már hogy kész lett (mert ez már a kész állapot) a lehető összes helyen direkt hibás adatot gépeltem be, és minden esetben az én hibaüzenetem jelent meg, nem a windowsé! szóval jól működik!!

de azt meg, hogy "minden frankó" már az első oldalon leírtam xDDD az utána való kommentben csak azt írtam le, hogy itt rohadtul nem windows formról van szó! :D

2015. jan. 30. 18:25
 19/30 anonim ***** válasza:

Pár sorban, jobban:


static void Main(string[] args)

{

Console.Write("Írjon be egy 'c' -t, ha egy karakter ascii kódját szeretné megkapni!\nÍrjon be egy 'i' -t, ha egy ascii kód karakterét szeretné megkapni!\n\n");

bool exit = false;

while (!exit)

{

switch (Console.ReadKey(true).KeyChar)

{

case 'c':

Console.WriteLine("Írjon be egy betűt: ");

char ch = Console.ReadKey(true).KeyChar;

Console.WriteLine(ch + " : " + (int)ch);

break;

case 'i':

Console.Write("Írjon be egy számot: ");

int i;

if (Int32.TryParse(Console.ReadLine(), out i))

if (i <= 0 || i >= 255)

Console.WriteLine("Hibás szám!");

else

Console.Write(i + " : " + (char)i + "\n");

else

Console.WriteLine("Ez nem szám!");

break;

case 'q':

exit = true;

break;

default:

Console.WriteLine("Hülye vagy te fiacskám!");

break;

}

}

}

2015. jan. 30. 19:17
Hasznos számodra ez a válasz?
 20/30 SimkoL ***** válasza:
Ne küzdj már... és ne oktass ki tőled jobban hozzáértőket. Az akármiTryParse() függvény és még nagyon sok, sőt minden alapvető függvény működik mindkét féle alkalmazásban (console, Winform) :) Százszor egyszerűbb egy meglévő függvényt meghívni és kiértékelni mind küzdeni, de hajrá :)
2015. jan. 30. 19:25
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!