=> 2 つの主要な関数があり、1 つは属性の状態を制限し、もう 1 つは匿名の委任と Lambda を簡素化します。
使用法 1: 読み取り専用プロパティを定義する
public class ManPeople { public string Sex => "男";
public string Name { get; set; }}
public class WomanPeople { public string Sex => "女";
public string Name { get; set; }}
public string Sex => "男";
ここでの => の使用法は { get; } = と同等です。つまり、Sex フィールドを読み取り専用属性として設定し、同時に値を割り当てます。
パブリック文字列性別 {取得; } = "男"
使用法 2: ラムダ式、匿名デリゲート
たとえば、デリゲートを定義します:
delegate int DeMethod(int a, int b);
別のメソッドを定義します:
int Add(int a, int b)
{ return a + b; }次のようにデリゲートを通じてメソッドを呼び出す必要がある場合があります。 : DeMethod m += Add; Console.WriteLine(m(2, 3));
C# 2.0 を使用した匿名メソッド構文:
DeMethod m += delegate(int a, int b) { return a + b; };
Console.WriteLine(m(2, 3));
C#3.0 のラムダ式を使用すると、
DeMethod m += (a ,b) => a + b;
Console.WriteLine(m(2, 3));
でメソッド定義を保存できます。
実際、ラムダ式は匿名メソッドの構文を単純化するだけです。
最後に、これらの文字 += (s, e) => は C# で何を意味しますか
public MainWindow()
{
InitializeComponent();
this.Loaded += (s, e) => InitSomeConfig();
this.Unloaded += (s, e) => this.Value= null;
}
上記のコードでは、 += は委任チェーンに委任を追加することであり、 (s,e) => はラムダ式で、この式で委任が作成され、 => 以降が委任処理の本体となります。
実際、これは次と同等です
this.Loaded += new EventHandler(Form_Loaded);
private void Form_Loaded(object sender, EventArgs e) {
InitSomeConfig ();
}