VB.NETでもMidステートメントで文字列を置き替えたい
はじめに
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
お疲れ様でした。