VB.NET 演算子のトピック

 [Home] |  [Index]

投稿日 2015/06/26

:=

:= は、名前付きパラメータを指定するのに使用する。Excel のメソッドはパラメータがたくさんあるので、:= を使うとわかりやすくなる。

excel.Workbooks.Open(Filename:=TextBox1.Text)

\

\ は整数の商を計算するとき使用する。浮動小数点数の割り算で余りがあれば、結果は余りを切り上げた値になる。次の例で結果は 5 になる。整数の割り算では余りは切り捨てられる。

Dim x, y As Double
x = 10.5
y = 2.4
Console.WriteLine(x \ y)

^

^ は累乗を計算するのに使用する。次の結果は 16 になる。^ 演算子は浮動小数点数でも使用できる。

i = 2
j = 4
Console.WriteLine(i ^ j)

AddressOf

AddressOf は関数などのアドレスを取得するのに使用する。たいてい、AddHandler などとともに使用する。

AddHandler OnClick, AddressOf Label_Click

Await (CLR 4.5以上)

Await は非同期メソッドを実行するとき使用する。Await は、非同期メソッドが終了するまで実行をブロックする。Await を使う場合、その Await を含むメソッドの先頭には、Async キーワードが必要になる。

Imports System.Net.Http
Imports System.Threading

Module Module1

  Sub Main()
    ' 非同期メソッドが完全に終了するまで待つためのイベントオブジェクト
    Dim ev As New ManualResetEventSlim(False)
    ' このメソッドは非同期なので、レスポンスが返される前にもどってくる。
    GetMsg(ev)
    ' レスポンスが返されて表示が終わるまで待つ。
    ev.Wait()
  End Sub
  
  ' Async の付いた非同期メソッド
  Async Sub GetMsg(ByVal ev As ManualResetEventSlim)
    Dim client As HttpClient = New HttpClient()
    ' HttpClient クラスの非同期文字列取得メソッドを実行する。(Await が必要)
    Dim str As String = Await client.GetStringAsync("http://localhost/")
    Console.WriteLine(str)
    ' メソッドの処理が完全に終わったことを通知する。
    ev.Set()
  End Sub
End Module

GetType, TypeOf

GetType は 引数に型名を取り、その型の Type オブジェクトを返す。TypeOf は引数にオブジェクトを取り、その型名を返す。必ず Is とともに使用される。

Dim t As Type = GetType(String)
Dim s As String = ""
If TypeOf s Is String Then
  ' ...
Else
  ' ...
End If

If (演算子)

If 演算子は、C# の3項演算子に相当する。つまり、第一引数(式)が真なら第二引数(式の値)を返す。偽なら第三引数(式の値)を返す。

Dim s = If(i Mod 2 = 0, "Even", "Odd")

IsFalse, IsTrue

この演算子は直接、使うことはない。代わりに AndAlso や OrElse を使用する。


Like

Like は文字列パターンとの比較を行う演算子である。以下のパターンが許される。

パターン 意味
? 任意の 1 文字
* 0 個以上の文字
# 任意の 1 桁 (0–9)
[ charlist ] charlist に含まれる任意の 1 文字
[! charlist ] charlist に含まれない任意の 1 文字

testCheck = "F" Like "f"  ' False
testCheck = "F" Like "FFF"  ' False
testCheck = "aBBBa" Like "a*a"  ' True
testCheck = "F" Like "[A-Z]"  ' True
testCheck = "F" Like "[!A-Z]"  ' False
testCheck = "a2a" Like "a#a"  ' True

Mod

Mod は割り算の余りを得るための演算子である。浮動小数点数でも使えるが、不正確な場合がある。

r = 10 Mod 2  ' 0
r = 10 Mod 3  ' 1
r = -10 Mod 3  ' -1
r = 12 Mod 4.3 ' 3.4

Function, Sub

Function (値を返さないときは Sub) はラムダ式を定義する。以下のような文法を取る。

Function ( [ parameterlist ] ) expression
 - or -
Function ( [ parameterlist ] )
  [ statements ]
End Function
Dim increment1 = Function(x) x + 1
Dim increment2 = Function(x)
                   Return x + 2
End Function

 

このページのトップへ