C#で書いたラムダ式を用いたコードをVBで書き直してみる
.netのVBを使い慣れない私が、今度はラムダ式を使ったテストコード(コンソールアプリケーション)をC#で書いた後、そのコードVBに書き直してみただけの記事です。
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //文字列を返すだけのFunc Func<string> func = () => "returnvalue"; //数値を3倍にして文字列で返すFunc Func<int, string> func2 = (i) => { i = i * 3; return i.ToString(); }; //引数をコンソールに表示するだけのAction Action<string,string> action = (str1,str2) => { Console.WriteLine(str1); Console.WriteLine(str2); }; //Actionを実行 action(func(), func2(2)); //下記コードはコンソール画面を表示しておくために追加 Console.ReadLine(); } } }
上記処理をVB(Visual Studio 2015)で書き直してみます。
Module Module1 Sub Main() '文字列を返すだけのFunc Dim func As Func(Of String) = Function() "returnstring" '数値を3倍にして文字列で返すFunc Dim func2 As Func(Of String, Integer) = Function(i) i = i * 3 Return i.ToString() End Function '引数をコンソールに表示するだけのAction Dim action As Action(Of String, String) = Sub(str1, str2) Console.WriteLine(str1) Console.WriteLine(str2) End Sub 'Actionを実行 action(func(), func2(2)) '下記コードはコンソール画面を表示しておくために追加 Console.ReadLine() End Sub End Module
処理結果はどちらも
returnstring
6
となります。
LinqにGUIのイベントにと使い道は非常に多いので、VBでのラムダ式の書き方は押さえておくと便利そうと感じました。 とりあえず書き溜めて、そのうちQiitaとかで纏めようかと思います。