Visual Basic の変数を解説するよ(技術メルマガ編)のメモ

青木「今日から、いよいよ変〇の解説をするぞッ!!!」
田中「ええ、あの、変…なんですか???」
青木「変〇の解説だッ!!!」
田中「変…というと、奥浩哉さんの漫画のアレですか?」
青木「変〇というとそうかもしれないな」
田中「あの、HEN…とかいう漫画のアレですか?」
青木「そうかもな、変〇というと、アレかもな」
田中「でも、あの、Visual Basic と何か関係あるんでしょうか?」
青木「そりゃ、変数が無いと困るだろう、Visual Basic 2010 でプログラミングできないじゃんッ!!!」
田中「…」
青木「何考えてんだ、君は???」

とかいう前振りを考えたのだけど、技術メルマガでは却下することにしました。アレだし。沼正三や天野哲夫の話をしても困るだろうし。でも、澁澤龍彦は良さそうだったり。

というのはさておき、Visual Basic では変数の扱いが意外とややこしくて、主な使い方が以下の通り。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
' オブジェクト型
Dim obj As Object
' オブジェクト型(型指定をしない)
Dim obj2
 
' 数値型
Dim num As Integer
' 文字列型
Dim str As String
 
' 配列型
Dim array() As Integer
Dim array2 As Integer()
 
' クラスオブジェクト
Dim cn As SqlConnection
' コンストラクタを利用
Dim cnx As New SqlConnection
 
' コレクション
Dim lst As List(Of Integer)
 
' 推論
Dim var = From n In lst Select n
 
' 同時に初期設定する
Dim n1 As Integer = 10
' 同時に初期設定する(推論を利用)
Dim n2 = 10
 
Dim cn1 = New SqlConnection
Dim cn2 As Object
' オブジェクト型に代入
cn2 = cn1
Dim cn3 As SqlConnection
' オブジェクト型から代入
cn3 = cn2
' 明示的にキャスト(CType)を使って代入
cn3 = CType(cn2, SqlConnection)
 
' for で使う一時変数
For i As Integer = 1 To 10
 
Next
 
' for each で使う一時変数
For Each n In lst
 
Next
 
' リソースを解放させる
Using bmp As New Bitmap
 
End Using
 
If str = "" Then
    Dim temp As String = ""
End If
' ここでは使えない
' temp = ""

VB6.0 の頃に object 型だったり、Variant 型だったりしたものが、初期値で型推論に変わったので、このあたりが微妙に異なっていたり、string 型から object 型にキャストをするときに暗黙のキャストが定義されていたり。

関連としては、For 文と For Each 文と同時利用が必須ですね。ブロック内の局所変数とかも。

カテゴリー: VB, 技術メルマガ パーマリンク