エラーが発生します:フォーマット例外が処理されませんでした、入力文字列が正しいフォーマットではありませんでした。
この行の場合:
int right = System.Convert.ToInt32(rightAngleTB.Text);
rightAngleTBはTextBoxであり、値Textは "25"( ""なし)です。
私は本当に問題を見ていません:(
エラーが発生します:フォーマット例外が処理されませんでした、入力文字列が正しいフォーマットではありませんでした。
この行の場合:
int right = System.Convert.ToInt32(rightAngleTB.Text);
rightAngleTBはTextBoxであり、値Textは "25"( ""なし)です。
私は本当に問題を見ていません:(
本当に使用する必要がありますint.TryParse
。変換ははるかに簡単で、例外は発生しません。
ユーザーの入力に先頭または末尾のスペースが含まれることがよくあります。.Trim()を使用すると、先頭と末尾の空白が削除されます。次に、TryParseは、例外をスローせずにint(トリミングされたテキストが整数の場合)を提供します。
以下を使用してください。
int right = 0; //Or you may want to set it to some other default value
if(!int.TryParse(rightAngleTB.Text.Trim(), out right))
{
// Do some error handling here.. Maybe tell the user that data is invalid.
}
// do the rest of your coding..
上記のTryParseが失敗した場合、rightの値は、上記の宣言で設定した値になります。(この場合は0 ...)
以下のコードを試してください。
using System;
public class StringParsing
{
public static void Main()
{
// get rightAngleTB.Text here
TryToParse(rightAngleTB.Text);
}
private static void TryToParse(string value)
{
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}