web-dev-qa-db-ja.com

C#のプロパティで「=>」演算子は何を意味しますか?

このコードはどういう意味ですか?

public bool property => method();
36
Sipo

これはexpression-bodied propertyであり、C#6で導入された計算プロパティの新しい構文であり、ラムダ式を作成するのと同じ方法で計算プロパティを作成できます。この構文は次と同等です

public bool property {
    get {
        return method();
    }
}

メソッドにも同様の構文が機能します。

public int TwoTimes(int number) => 2 * number;
49
dasblinkenlight

それは表現の身体的特性です。 MSDN を参照してください。これは単なる略記です

public bool property
{
    get
    {
        return method();
    }
}

式本体機能も可能です。

public override string ToString() => string.Format("{0}, {1}", First, Second);
10
stop-cran

これはC#6に最初に導入された新しい機能であると述べたように、ゲッターとセッターで使用するために C#7. でその使用を拡張しました。

static bool TheUgly(int a, int b)
{
    if (a > b)
        return true;
    else
        return false;
}
static bool TheNormal(int a, int b)
{
    return a > b;
}
static bool TheShort(int a, int b) => a > b; //beautiful, isn't it?
9
mshwf

プロパティで使用される=>expression bodyです。基本的に、getterのみを使用してプロパティを記述する、より簡潔で簡潔な方法。

public bool MyProperty {
     get{
         return myMethod();
     }
}

に翻訳されています

public bool MyProperty => myMethod();

よりシンプルで読みやすいですが、この演算子はC#6および here からのみ使用できます。式本体に関する特定のドキュメントがあります。

5
Tinwor

それは、単純化された表現です。

public string Text =>
  $"{TimeStamp}: {Process} - {Config} ({User})";

参照; https://msdn.Microsoft.com/en-us/magazine/dn802602.aspx

3
Nadeem Khoury