Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
「C# 入門講座 第4回 イベントを逃すな」の5-2のコードについて。
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30813#CommentId85509
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
辺見!真琴
 (社会人)
投稿日時
2022/11/7 01:22:23
反応ありがとうございます。
> たとえば、Timer で下記を実行した場合、常に this.Text == "1" の状態になってしまいますか?
> this.Text = $"{(int.TryParse(this.Text, out int num) ? num + 1 : 1)}";
はい、0から1になって、後は常に1の状態でした。
> WindowsFormsApp1 - "Windows フォーム アプリケーション (.NET Framework)" と
> WinFormsApp1 - "Windows フォーム アプリ" のいずれの場合でも、
> int.Parse が失敗するのでしょうか。
> // int x = int.Parse(this.Text);
> int x = int.Parse("0");
> this.Text = (x + 1).ToString();
ここの入門はWinFormsApp1でこなして来ました。
改めてWindowsFormsApp1でもやってみましたが、どちらもこのサンプルは0から1に変わって、後は常に1でした。
エラーは出ませんでした。
思い付きで、コメントアウトしていたコードを復帰させてもう少し分解してみました。
var x = this.Text;
int y = int.Parse(x);
this.Text = (y + 1).ToString();
2行目のParse()で例外が出ました。
"0"が変換出来てthis.Textが変換出来ないと言うのは・・・うむむむむ。