() =>
で書く短いメソッド。
成果物
情報源
コード
式
class Main { public void Run() => Console.WriteLine("ラムダ式。"); }
文
class Main { public void Run() { Run0(); } private void Run0() { Action<int> act = param => { Console.WriteLine($"ラムダ式。(文): {param}"); Console.WriteLine($"ラムダ式。(文)二行目。: {param}"); }; act(100); } }
以下はエラーになった。なぜ?
class Main { public void Run() => { Console.WriteLine("ラムダ式。(文)"); Console.WriteLine("ラムダ式。(文)二行目。"); } }
lesson1/Main.cs(5,30): error CS1525: Invalid expression term '{' lesson1/Main.cs(5,30): error CS1002: ; expected lesson1/Main.cs(5,30): error CS1519: Invalid token '{' in class, struct, or interface member declaration lesson1/Main.cs(6,30): error CS1519: Invalid token '(' in class, struct, or interface member declaration lesson1/Main.cs(6,31): error CS1031: Type expected lesson1/Main.cs(6,31): error CS8124: Tuple must contain at least two elements. lesson1/Main.cs(6,31): error CS1026: ) expected lesson1/Main.cs(6,31): error CS1519: Invalid token '"ラムダ式。(文)"' in class, struct, or interface member declaration lesson1/Main.cs(7,30): error CS1519: Invalid token '(' in class, struct, or interface member declaration lesson1/Main.cs(7,31): error CS1031: Type expected lesson1/Main.cs(7,31): error CS8124: Tuple must contain at least two elements. lesson1/Main.cs(7,31): error CS1026: ) expected lesson1/Main.cs(7,31): error CS1519: Invalid token '"ラムダ式。(文)二行目。"' in class, struct, or interface member declaration lesson1/Main.cs(10,1): error CS1022: Type or namespace definition, or end-of-file expected
非同期
よくわからん。一応動いてる。
class Main { public void Run() { var task = Run0(); task.Wait(); } private async Task Run0() { Func<Task> act = async () => { int wait = 2000; Console.WriteLine($"{wait}ミリ秒待機中……"); // await Task.Delay(wait); await Task.Delay(wait).ConfigureAwait(false); Console.WriteLine($"非同期ラムダ式。(文)"); }; await act(); } }
- http://zuga.net/articles/cs-error-CS4033-the-await-operator-can-only-be-used-within-an-async-method/
- https://qiita.com/go_astrayer/items/352c34b8db72cf2f6ca5
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13 ※
- bash 4.4.12(1)-release ※
- SQLite 3.29.0 ※
- C# dotnet 3.0.100 ※
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux