C# string -> int exception

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
jesse
Inlägg: 9233
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

C# string -> int exception

Inlägg av jesse »

Jag provar att följa ett exempel i Visual Studio, men får felet "FormatException" när jag ska omvandla en textsträng till ett int.

Strängen tas från en textbox. Textboxen innehåller ett numeriskt värde ("74"), men det funkar ändå inte.
iAngle är en static int. Vad kan vara problemet? Är Int32.Parse() det normala sättet att läsa ur heltal från textboxar?

Kod: Markera allt

private void canvas_Paint(object sender, PaintEventArgs e)
        {
            iAngle = Int32.Parse(angle.Text);   <<<<==== FormatException här !!!!
            iInc = Int32.Parse(incr.Text);
            iLength = Int32.Parse(length.Text);
            numLines = Int32.Parse(number_of_lines.Text);

            s_x = canvas.Width / 2;
            s_y = canvas.Width / 2;

            canvas.Refresh();
        }
Användarvisningsbild
jesse
Inlägg: 9233
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: C# string -> int exception

Inlägg av jesse »

Letade mer info om felet, och fick fram texten: {"Indatasträngen hade ett felaktigt format."} på svenska!
Det är ju en sträng, och innehåller "74". Kan strängar ha olika format?

Raderna anropas massot av gånger, och de första 2 sek. funkar det. Sen plötsligt blir det fel, trots att inget ändrats i textboxen. Ibland går det att köra en längre tid.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: C# string -> int exception

Inlägg av johano »

Sätt en brytpunkt på FormatException eller sätt en try/catch runt den koden och sen en vanlig brytpukt inne i catchblocket och kolla vad text verkligen är.

Den är förmodligen inte vad du tror

/j
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45176
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: C# string -> int exception

Inlägg av TomasL »

Du har inget kommatecken, mellanslag eller liknande i strängen?
Användarvisningsbild
jesse
Inlägg: 9233
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: C# string -> int exception

Inlägg av jesse »

inga andra tecken, inga mellanslag, bara "74". Syns tydligt i debuggern när programmet stoppats.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Kulla
Inlägg: 1264
Blev medlem: 7 januari 2010, 10:06:11
Ort: Sandared
Kontakt:

Re: C# string -> int exception

Inlägg av Kulla »

Testa med iAngle = Convert.ToInt32(angle.Text );
Användarvisningsbild
jesse
Inlägg: 9233
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: C# string -> int exception

Inlägg av jesse »

Inser att det nog blir fel nånstans i kompileringen... Min kod är riktig på den raden, men jag hade gjort lite andra saker som innebar att funktionen utfördes tiotusentals gånger och nånting kraschar. När jag ändrade det funkar plötsligt allt som det skall...
Skriv svar