rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 7.0 - 式形式のメンバーの追加 (More expression bodied members)

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

式形式のメンバーの追加 (More expression bodied members)

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members
 コンストラクター、ファイナライザー、プロパティの settergetter、メソッドを式で定義できる。

class MyClass
{
    // コンストラクターを式で宣言可能
    internal MyClass(string value) => _value = value;
    // ファイナライザーを式で宣言可能
    ~MyClass() => Value = null;

    // プロパティのアクセサーを式で宣言可能
    private string _value;
    internal string Value
    {
        get => _value;
        set => _value = value;
    }

    // メソッドを式で宣言可能
    public override bool Equals(object obj) => obj is MyClass c && this.Value == c.Value;
    public override int GetHashCode() => base.GetHashCode();
}