LoginSignup
9
11

More than 5 years have passed since last update.

VB.NET超初心者用メモ

Posted at

はじめに

ひと月前ほどから仕事でVisualBasic(2015)を使い始めたので、その時にVisualBasic特有(?)で困った事など、超初心者用のメモです。VisualBasicとは関係なくVisualStudio全般の話も混じってるかもしれませんが、ご容赦下さい。
参考までに、これまで経験してきた言語としてはC/C++/Java(Android)です。学生時代(遠い昔ですが・・・)に.NETになる以前のVBを触った事も少しありました。

Intellisense(入力候補)の決定は「Tab」

これ、つい「Enter」で決定したくなるのですが、「Enter」で候補を決定してしまうと文字はきちんと入力されるので良いのですが、直後に改行されてしまいます。「Tab」で決定すれば改行されずに入力候補の決定ができると気が付くまで非常に不便でした。まぁ設定で変えられそうですけどね。

AndやOrは基本的には使わない

普通に考えたらAndOrを使って条件式を書くと、式の途中で確定した場合は後続する式を評価しないものだと思ってしまいがちですが、AndOrでは全ての式を評価してしまうようです。AndAlsoOrElseを使う事で全ての式を評価しないようにできるので、特別な理由がない限りAndAlsoOrElseを使いましょう。これは過去のVBとの互換性のためでしょうか?

Stopが予約語

Enumの値にStopを使用しようとしたら怒られる。なんでだろうと思ったら予約語にStopが。結構一般的な名前だからこれは困るんじゃないの?と思ったけど、「エスケープ識別子」ってやつで定義できるようになるらしい。

Public Enum type
    Hoge
    Fuga
    [Stop]
End Enum

みたいな感じで角カッコで括ってやるといいらしいです。

SelectCaseマジ有能

SelectCaseとは、いわゆるSwitchCaseのようなものという認識なのですが、VisualBasicでは以下のような書き方もできるようなのです。

Select Case True
    Case func1()
        ' 処理1
    Case func2()
        ' 処理2
    Case func3()
        ' 処理3
End Select

おわかり頂けるでしょうか。通常のSwitchCaseでは式を書くべき場所にTrueという値が入っていて、逆に後に続くCaseでは通常値を書くべきですが、式が書かれています。すなわち通常のSwitchCaseと式と値が逆に書けるようなのです。私にはこの発想自体が全然なくて、こうやって書ける事を知った時には衝撃でした。

最後に

VisualBasicを1ヶ月触ってみて、最初は変数宣言する時の

Dim hoge as Integer

って書き方がすごい面倒だなとか、波括弧{}無いのが不便だなとか、何でわざわざfunctionSubを使い分けなきゃいけないの?とか、もうクソ言語が!って感じだったのですが、恐らく私がクソなだけだっただけで言語自体はとても良い言語なのでは無いかと思います。私も仕事でVBを扱う事が無かったら、もう一生機会がなかったかもしれませんが、良い経験させてもらいました。今VBやるならC#やるよ、なんて言わず、皆さんも是非VB使ってみて下さい!

9
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11