はじめに
Mid関数の引数について調べていたらふとこんなものを見つけました。
同じ名前で関数とステートメントの両方があるだなんてVBはなんて素敵な言語なんでしょう。
サンプルコード
使う使わないは置いておいてとりあえず使い方を確認してみましょう。
Dim target = "The quick brown fox jumps over the lazy dog." Mid(target, 17, 3) = "cat" Console.WriteLine(target)
The quick brown cat jumps over the lazy dog.
アッハイ
内部
コンパイラ内でどんな命令に置き換えられているのでしょう。
IL_0000: nop
IL_0001: ldstr "The quick brown fox jumps over the lazy dog."
IL_0006: stloc.0
IL_0007: ldloca.s target
IL_0009: ldc.i4.s 17
IL_000b: ldc.i4.3
IL_000c: ldstr "cat"
IL_0011: call void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::MidStmtStr(string&,
int32,
int32,
string)
IL_0016: nop
IL_0017: ldloc.0
IL_0018: call void [mscorlib]System.Console::WriteLine(string)
IL_001d: nop
IL_001e: nop
IL_001f: ret
お疲れ様でした。