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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.94578 の関連記事表示

<< 0 >>
■94578  For文の書き方について
□投稿者/ 元コボラー -(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で書いた場合、どういった利点があるのでしょうか
親記事 /過去ログ164より / 関連記事表示
削除チェック/

■94582  Re[1]: For文の書き方について
□投稿者/ 魔界の仮面弁士 -(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 と同じ状態となります。
記事No.94578 のレス /過去ログ164より / 関連記事表示
削除チェック/

■94583  Re[2]: For文の書き方について
□投稿者/ 通りすがり -(2020/04/22(Wed) 13:35:21)
    No94578 (元コボラー さん) に返信
    変数宣言なしに@を使っているなら、後からメンバ変数やグローバル変数で変数宣言されると
    バグに繋がるかも。一人で小規模なプログラムを作っている場合に問題になることは
    少ないでしょう。複数人で同じような変数が20個くらい並んでくるなら、コーディング規約で
    変数名がスコープの広いものと被らないような対策を考えた方が良いかも。ローカル変数でも
    数十行ダラダラとコーディングするなら同じ問題に繋がり易いと思います。
記事No.94578 のレス /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -