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

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

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

For文の書き方について

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■94578 / inTopicNo.1)  For文の書き方について
  
□投稿者/ 元コボラー (2回)-(2020/04/22(Wed) 10:13:41)

分類:[VB.NET/VB2005 以降] 

2020/04/22(Wed) 10:14:19 編集(投稿者)

初歩的なことなのかもしれないけど、教えてください。

@
For i = 0 To 9


Next

A
For i As Integer = 0 To 9


Next

For文の書き方で、普段は@の書き方で書いているのですが、Aの書き方もあるようなのですが、
@とAはどちらの書き方がいいのでしょうか
Aで書いた場合、どういった利点があるのでしょうか

引用返信 編集キー/
■94582 / inTopicNo.2)  Re[1]: For文の書き方について
□投稿者/ 魔界の仮面弁士 (2701回)-(2020/04/22(Wed) 12:44:53)
No94578 (元コボラー さん) に返信
> @ For i = 0 To 9
> A For i As Integer = 0 To 9

手元に環境が無いので、うろ覚えの記憶ですが:

VB.NET 2002 の場合はどちらでもなく、
 Dim i As Integer
 For i = 0 To 9
と書く必要があったと思います。
(このバージョンでは For ループの局所変数がサポートされていない)

VB.NET 2003 や VB2005 の場合は、2002 当時と同じ書き方もできますが、通常はAで書いてください。
2003 や 2005 で@の構文を使うとコンパイルエラーになります。
ただし@であっても、Option Explicit Off モードでコンパイルすれば実行できてしまいますが、その場合、
 For i As Object = 0 To 9
の意味で処理されてしまうことになります。

そして VB2008 以降の場合は、上記いずれのスタイルも使えますが、一般的には @で書きます。
この省略表記を、「ローカル型の推論」と呼びます。
i = 0 という操作は、右辺が Integer 型であるため、宣言時の変数 i の型も As Integer としてコンパイルされるというものです。
また、VB2008 以降においても、Option Infer Off モードでコンパイルすれば、2005 と同じ状態となります。
引用返信 編集キー/
■94583 / inTopicNo.3)  Re[2]: For文の書き方について
□投稿者/ 通りすがり (2回)-(2020/04/22(Wed) 13:35:21)
No94578 (元コボラー さん) に返信
変数宣言なしに@を使っているなら、後からメンバ変数やグローバル変数で変数宣言されると
バグに繋がるかも。一人で小規模なプログラムを作っている場合に問題になることは
少ないでしょう。複数人で同じような変数が20個くらい並んでくるなら、コーディング規約で
変数名がスコープの広いものと被らないような対策を考えた方が良いかも。ローカル変数でも
数十行ダラダラとコーディングするなら同じ問題に繋がり易いと思います。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ