次の方法で共有


コード内の特殊文字

更新 : 2007 年 11 月

コードに、英数字ではない特殊文字の使用が必要な場合があります。Visual Basic の文字セットに含まれる区切り記号と特殊文字には、プログラム テキストの整理から、コンパイラやコンパイル済みプログラムが実行するタスクの定義まで、さまざまな用途があります。実行するオペレーションを指定するのには使用されません。

かっこ

Sub や Function などのプロシージャを定義するときはかっこを使用します。すべてのプロシージャの引数リストは、かっこで囲む必要があります。また、かっこは変数や引数を論理グループに含める場合にも使用します。具体的には、複合式の中で演算子の既定の優先順位をオーバーライドする場合にかっこが必要になります。次に例を示します。

Dim a, b, c, d, e As Double
a = 3.2
b = 7.6
c = 2
d = b + c / a
e = (b + c) / a

このコードを実行すると、d の値は 8.225、e の値は 3 になります。d の計算では、/ の優先順位は既定で + よりも高いため、d = b + (c / a) を実行しても結果は同じになります。e の計算に使用されているかっこは、既定の優先順位をオーバーライドします。

区切り記号

区切り記号は、その名前が示すとおり、コードのセクションを区切ります。Visual Basic では、区切り記号はコロン (:) です。複数のステートメントを複数行ではなく単一行に配置する場合に、区切り記号を使用します。これにより、スペースを節約し、コードを読みやすくすることができます。コロンで区切られた 3 つのステートメントの例を次に示します。

a = 3.2 : b = 7.6 : c = 2

連結

& 演算子は、連結 つまり文字列を結びつけるために使用します。数値を加算する + 演算子と混同しないでください。数値を連結する場合に + 演算子を使用して連結すると、誤った結果が生成されることがあります。次にコード例を示します。

var1 = "10.01"
var2 = 11
resultA = var1 + var2
resultB = var1 & var2

このコードを実行すると、resultA の値は 21.01、resultB の値は "10.0111" になります。

メンバ アクセス演算子

型のメンバにアクセスするには、型名とメンバ名の間に、ドット (.) 演算子または感嘆符 (!) 演算子を用います。

ドット (.) 演算子

. 演算子は、クラス、構造体、インターフェイス、列挙値にメンバ アクセス演算子として使用します。フィールド、プロパティ、イベント、メソッドなどのメンバに使用できます。次に例を示します。

Dim nextForm As New System.Windows.Forms.Form
' Access Text member (property) of Form class (on nextForm object).
nextForm.Text = "This is the next form"
' Access Close member (method) on nextForm.
nextForm.Close()

感嘆符 (!) 演算子

クラスまたはインターフェイスに限っては、感嘆符 (!) 演算子をディクショナリ アクセス演算子として使用します。クラスまたはインターフェイスには、単一の文字列型の引数を受け入れる既定のプロパティが必要です。! 演算子のすぐ後に識別子を続けると、既定のプロパティに文字列として渡される引数の値になります。次にコード例を示します。

Public Class hasDefault
  Default Public ReadOnly Property index(ByVal s As String) As Integer
    Get
      Return 32768 + AscW(s)
    End Get
  End Property
End Class
Public Class testHasDefault
  Public Sub compareAccess()
    Dim hD As hasDefault = New hasDefault()
    MsgBox("Traditional access returns " & hD.index("X") & vbCrLf & _
      "Default property access returns " & hD("X") & vbCrLf & _
      "Dictionary access returns " & hD!X)
  End Sub
End Class

MsgBox の 3 つの出力行は、いずれも値 32856 を表示します。最初の行では index プロパティに通常の方法でアクセスし、2 行目では index が hasDefault クラスの既定のプロパティであることが利用されています。また、3 行目ではディクショナリ アクセスを使ってクラスにアクセスしています。

! 演算子の 2 つ目のオペランドは、有効な Visual Basic 識別子を二重引用符 (" ") で囲まずに定義する必要があることに注意してください。つまり、文字列リテラルや文字列変数を使うことはできません。MsgBox 呼び出しの最後の行を次のように書き換えると、文字列リテラルが "X" のように二重引用符で囲まれているためエラーが発生します。

"Dictionary access returns " & hD!"X")

xxda45fy.alert_note(ja-jp,VS.90).gifメモ :

既定コレクションの参照は、必ず明示的に指定してください。特に、遅延バインディング変数では ! 演算子を使用できません。

感嘆符 (!) は、Single の型宣言文字としても使用されます。

参照

概念

型文字

その他の技術情報

プログラム構造とコード規則