What does this code mean?
public bool property => method();
=> used in property is an expression body . Basically a shorter and cleaner way to write a property with only getter . 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.
The => operator can be used in two ways in C#: As the lambda operator in a lambda expression, it separates the input variables from the lambda body. In an expression body definition, it separates a member name from the member implementation.
A get property accessor is used to return the property value, and a set property accessor is used to assign a new value. In C# 9 and later, an init property accessor is used to assign a new value only during object construction. These accessors can have different access levels.
The lambda operator => divides a lambda expression into two parts. The left side is the input parameter and the right side is the lambda body.
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;
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?
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);
=>
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With