RunningCSharp

MS系開発者による、雑多な記事。記事は所属企業とは関係のない、個人の見解です。

C#で書いたラムダ式を用いたコードをVBで書き直してみる

.netのVBを使い慣れない私が、今度はラムダ式を使ったテストコード(コンソールアプリケーション)をC#で書いた後、そのコードVBに書き直してみただけの記事です。

C#

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

となります。

LinqGUIのイベントにと使い道は非常に多いので、VBでのラムダ式の書き方は押さえておくと便利そうと感じました。 とりあえず書き溜めて、そのうちQiitaとかで纏めようかと思います。