1

私はしばらくの間C#から離れていましたが、コードを読み込もうとしているので、その意味を見つけるのに苦労しています。

var server = new WebSocketServer("ws://localhost:8181");
server.Start(socket =>
{
    socket.OnOpen = () =>
    {
        Console.WriteLine("Open!");
        allSockets.Add(socket);
    };
    socket.OnClose = () =>
    {
        Console.WriteLine("Close!");
        allSockets.Remove(socket);
    };
    socket.OnMessage = message =>
    {
        Console.WriteLine(message);
        allSockets.ToList().ForEach(s => s.Send("Echo: " + message));
    };
});

構文の名前は何socket => { .. }ですか?どこにテキストがありますか?そして、どのバージョンのC#で導入されていますか?= () => { .. }同じですか?

4

2 に答える 2

4

これはラムダ式であり、基本的には匿名メソッドであるデリゲートを定義するためのショートカットです。これは、C#3でLINQとともに導入され、使用がはるかに簡単になりました。構文は次のとおりです。

parameters => body

通常、コンパイラーは何らかの方法でパラメーターのタイプを推測できます。そのため、パラメーターの名前のみが表示されます。

于 2013-02-09T12:39:56.173 に答える
1

C#では、この構文はラムダ式と呼ばれます。これらはC#3.0以降で利用可能です

詳細:

ラムダ式を説明するMicrosoftのプログラミングガイド

C#ラムダ式:なぜそれらを使用する必要があるのですか?

とprogrammersheaven.comの

于 2013-02-09T12:39:14.410 に答える