0

c#を使用するAsp.netでは、私は持っています

int sum = Convert.ToInt32(txtbox1.Text) + Convert.ToInt32(txtbox2.Text);

空のテキスト ボックスがあると、「入力文字列の形式が正しくありません」というエラーが表示されます。

したがって、テキストボックスの値を0として使用しない場合、テキストボックスの値を整数のみで追加する簡単な方法があるかどうか疑問に思っています.

前もって感謝します!

4

6 に答える 6

3

Int32.TryParse メソッドを使用できます

ドキュメンテーションMSDN

于 2013-01-14T19:42:14.400 に答える
1

のデフォルト値を に設定するか、TextBox次を0使用できますTryParse

int val1, val2;
Int.TryParse(txtbox1.Text,out val1));
Int.TryParse(txtbox2.Text,out val2));
int sum =  val1 + val2;

いずれにしても値は 0 になるため、解析が失敗した場合は値を 0 に設定する必要がないことに注意してください。ただし、明示的にしたい場合:

int val1, val2;
if(!Int.TryParse(txtbox1.Text,out val1))) val1 = 0;
if(!Int.TryParse(txtbox2.Text,out val2))) val2 = 0;
int sum =  val1 + val2;
于 2013-01-14T19:45:22.967 に答える
1
int integer;
 Int32.TryParse(Textbox1.Text, out integer)

int integerSecond
 Int32.TryParse(Textbox2.Text, out integerSecond)

ブール値が返されるので、有効な整数を入力したかどうかを確認できます

または、いくつかのバリデーターを使用することもできます。

<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer" 
 ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" />

有効な値の特定の範囲がある場合 (おそらくある)、次のように RangeValidator を使用できます。

<asp:RangeValidator runat="server" Type="Integer" 
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox" 
ErrorMessage="Value must be a whole number between 0 and 400" />
于 2013-01-14T19:46:14.133 に答える
1

このための拡張メソッドを記述します

public static int NullOrEmptyToZero(this string s)
{
    return string.IsNullOrEmpty(s)? 0: ConvertToInt32(s);
}

そして、次のように使用します。

int sum = txtbox1.Text.NullOrEmptyToZero() + txtbox2.Text.NullOrEmptyToZero();
于 2013-01-14T19:47:13.207 に答える
1

try parse を使用して、テキストボックスに有効な入力が含まれていることを確認します (または、入力を数値のみに制限します)。

 int x, y, result;
 if (int.TryParse(txtbox1.Text, x)
 {
     if (int.TryParse(txtbox2.Text, y)
     {
          result = x + y;
     }
     else
         //error message
 }
 else
     // error message
于 2013-01-14T19:48:21.270 に答える
0

TryParse を使用します。

int iFirstVal= 0;
int iSecondVal= 0;

int.TryParse(txtbox1.Text, out iFirstVal))
int.TryParse(txtbox2.Text, out iSecondVal))

int sum = iFirstVal + iSecondVal
于 2013-01-14T19:47:28.750 に答える