質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

2回答

4727閲覧

文字列か数値か

Saya_A

総合スコア76

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2016/08/07 14:33

現在textboxに入力された文字をボタンクリックで取得するようにしています。
下記のコードで、入力される文字は半角数字のみ可能となっています。

private void Level_KeyPress(object sender, KeyPressEventArgs e) { if ('0' <= e.KeyChar && e.KeyChar <= '9') { } else if (e.KeyChar == '\b') { } else { e.Handled = true; } }

ここで、buttonクリック時の処理として下記のとおりにしていて、

private void onClick(object sender, EventArgs e) { string Level = textBox1.Text;

この状態で別な場所でこのLevelという文字を使う場合はそのまま数字として使えるのでしょうか?
ここでintの型に入れなおしておくべきでしょうか。
入れなおす場合そのやり方もお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

int level = int.Parse(textBox1.Text);

計算とかに使用するのであれば、int にしといたほうがいいとは思いますね。

投稿2016/08/07 16:27

編集2016/08/07 16:29
mugicya

総合スコア1046

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Saya_A

2016/08/07 19:14

ありがとうございます!!
guest

0

ベストアンサー

数値に変換する必要があるかどうかは、
その後の処理内容に依存します。

  • 計算を行いたい
  • データベース上で数値項目の列に値を保存したい

上記のようなことを行うのであれば数値変換しておく方が便利でしょう。

逆に上記のようなことをしない場合は文字列のままでも弊害はないように思われます。

ちなみに数値変換の行い方ですが、
整数であれば一般的にはint型へのキャストが多いです。

キャストの行い方ですが、
間違いなく整数値に変換出来るという場合ではint.Parseメソッドを、
整数以外も入ることがあるよという場合でしたらint.TryParseメソッドを利用します。

1つ目の例は他の回答者様がコードを掲示してますので、
2つ目のみサンプルを掲示します。

C#

1int level = 0; 2 3if (!int.TryParse(textBox1.Text, out level)){ 4 // 整数変換できなかった場合 5 MessageBox.Show("数値変換できないよっ!"); 6}

上記のようになります。
TryParseメソッドの特徴ですが、
戻り値がbool型となります。
キャストに成功した場合はtrueを戻し、2番目の引数に変換後の数値が入ります。
(テキストに「3」を入れていた場合は3が入る)

逆にキャストに失敗した場合はfalseを返却し、levelには規定値が戻されます。(確か規定値は「0」)

こいつを使うメリットとしては、
変換に失敗した際に例外を投げない所ですが、
少しソースの見栄えは悪くなるので、
基本的に整数値入力できない前提があるのでしたらint.Parseでも良いでしょう。
(ただしtry〜catchなどで例外ハンドルはして欲しいですが…)

投稿2016/08/07 17:34

編集2016/08/07 17:35
Panzer_vor

総合スコア1636

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Saya_A

2016/08/07 19:14

ありがとうございます!!とても参考になりました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問