C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■85125 / 2階層)  C#のカウント
□投稿者/ 大谷刑部 (41回)-(2017/09/12(Tue) 10:55:44)
No85120 (魔界の仮面弁士 さん) に返信
> ■No85118 (しろ さん) に返信
>>釦を押すごとにカウント
>
> private int counter;
> private void Form1_Load(object sender, EventArgs e)
> {
>   counter = 0;
>   label1.Text = counter.ToString("N0");
> }
> private void button1_Click(object sender, EventArgs e)
> {
>   label1.Text = (++counter).ToString("N0");
> }
>
> Public Class Form1
>   Private counter As Integer
>   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
>     counter = 0
>     Label1.Text = counter.ToString("N0")
>   End Sub
>   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
>     counter += 1
>     Label1.Text = counter.ToString("N0")
>   End Sub
> End Class

ちなみに+=はVBでも使えます。(.Netの初期から)
そもそもVBとC#でできることにそんなに差はないかと。
特に最近は構文がBasic系とC系の違いがある以外は、
ほとんど違いを感じません。


>>Label1.Text = Label1.Text + 1
>
> VB のそれは、Option Strict On ではエラーになるのご注意ください。
>
> Option Strict Off の場合に限りコンパイルが通りますが、その場合は
>  Label1.Text = CStr(CDbl(Label1.Text) + 1.0)
> に相当するコードとして処理されることになります。

むしろこのやり方の方がVB6チックな感じが。
魔界の仮面弁士 さんがご指摘の通り、
非明示変換が発生するのでやるとしても整数のみの方がよいでしょう。
小数で型変換を指定しない場合は2進型であるdoubleで内部処理されるので
端数ずれの元です。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: C#のカウント /魔界の仮面弁士 →Re[3]: C#のカウント /魔界の仮面弁士
 
上記関連ツリー

C#のカウント / しろ (17/09/12(Tue) 08:12) #85118
Re[1]: C#のカウント / 魔界の仮面弁士 (17/09/12(Tue) 08:58) #85120
  └ C#のカウント / 大谷刑部 (17/09/12(Tue) 10:55) #85125 ←Now
    └ Re[3]: C#のカウント / 魔界の仮面弁士 (17/09/12(Tue) 11:53) #85129
      └ Re[4]: C#のカウント / しろ (17/09/12(Tue) 12:32) #85132 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信