Avatar billede Simon Praktikant
24. januar 2006 - 13:08 Der er 9 kommentarer og
1 løsning

kontroller om String indeholder en gyldig int16 værdi

Jeg har en String som jeg gerne vil vide om indeholder en gyldig int16 værdi. Dette gør jeg pt. således:

String talStr;
int tal;
....
try
{
    tal= System.Convert.ToInt16(talStr);
}
           
catch(Exception exc)
{
    Console.WriteLine(exc);
    returnValue = "Fejl";     
}

Findes der en mere rafineret metode?
Avatar billede nielle Nybegynder
24. januar 2006 - 13:14 #1
Du kan også skrive:

tal = Int16.Parse(talStr);

- men hvad er dit kriterie for at det er mere rafineret?
Avatar billede nielle Nybegynder
24. januar 2006 - 13:17 #2
Din exception burde nok være indsnævret til en System.FormatException i stedet for den helt brede catch-all System.Exception
Avatar billede nielle Nybegynder
24. januar 2006 - 13:22 #3
string talStr = "12345";
int tal = -1;

try
{
    tal = Int16.Parse(talStr);
}
catch (FormatException exc)
{
    Console.WriteLine(exc);
    returnValue = "Fejl";
}
catch (System.OverflowException exc)
{
    Console.WriteLine(exc);
    returnValue = "Fejl";
}
Avatar billede Simon Praktikant
24. januar 2006 - 13:43 #4
Det jeg ønsker er egentlig en funktion a la:

talStr.ContainsInteger();

således at der returneres true ved "1", "2334", osv
og returneres false ved "", "hundrede", "100ydg", " 4 3 2" osv
Avatar billede nielle Nybegynder
24. januar 2006 - 14:08 #5
Lav din funktion sådan her:

public bool ContainsInteger(string talStr)
{
    try
    {
        Int16 dummy = Int16.Parse(talStr);
        return true;
    }
    catch (FormatException)
    {
        return true;
    }
    catch (OverflowException)
    {
        return false;
    }
}

Den skal godt nok kaldes sådan ContainsInteger(talStr), men du kan faktisk ikke få den anden notation med mindre at du selv definere en ny klasse om wrapper dit Int16-tal.
Avatar billede nielle Nybegynder
03. februar 2006 - 17:36 #6
Hvad med noget respons?
Avatar billede Simon Praktikant
16. august 2006 - 09:47 #7
Undskyld det tog så lang tid. Havde glemt alt om tråden her. Tak for hjælpen. Smid svar og point er dine
Avatar billede nielle Nybegynder
16. august 2006 - 09:48 #8
Bedre sent end aldreig :^)
Avatar billede Simon Praktikant
16. august 2006 - 09:50 #9
Takker for forståelse ;-)
Avatar billede nielle Nybegynder
16. august 2006 - 09:59 #10
Takker for point :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester