What does “=>” operator mean in a property in C#? [duplicate]

北城以北 提交于 2019-12-17 22:19:11

问题


What does this code mean?

public bool property => method();

回答1:


This is an expression-bodied property, a new syntax for computed properties introduced in C# 6, which lets you create computed properties in the same way as you would create a lambda expression. This syntax is equivalent to

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

Similar syntax works for methods, too:

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



回答2:


As some mentioned this is a new feature brought first to C# 6, they extended its usage in C# 7.0 to use it with getters and setters, you can also use the expression bodied syntax with methods like this:

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?



回答3:


That's an expression bodied property. See MSDN for example. This is just a shorthand for

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

Expression bodied functions are also possible:

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



回答4:


=> used in property is an expression body. Basically a shorter and cleaner way to write a property with only getter.

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

Is translated to

public bool MyProperty => myMethod();

It's much more simpler and readable but you can only use this operator from C# 6 and here you will find specific documentation about expression body.




回答5:


It's the expression bodied simplification.

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

Reference; https://msdn.microsoft.com/en-us/magazine/dn802602.aspx




回答6:


That is a expression bodied property. It can be used as a simplification from property getters or method declarations. From C# 7 it was also expanded to other member types like constructors, finalizers, property setters and indexers.

Check the MSDN documentation for more info.

"Expression body definitions let you provide a member's implementation in a very concise, readable form. You can use an expression body definition whenever the logic for any supported member, such as a method or property, consists of a single expression."



来源:https://stackoverflow.com/questions/40282424/what-does-operator-mean-in-a-property-in-c

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!