The short => syntax for defining methods and read-only properties was introduced in Expression bodied members C# 6.0.
C# 7.0 expands this support to constructors, finalizers, get accessors, and set accessors.
Code
csharp
class NamedHandle
{
string name;
ulong handle = Handle.Allocate();
public NamedHandle(string name) => this.name = name;
~NamedHandle() => Handle.Release(handle);
public string Name
{
get => name;
set => name = value;
}
}csharp
class NamedHandle
{
string name;
ulong handle = Handle.Allocate();
public NamedHandle(string name)
{
this.name = name;
}
~NamedHandle()
{
Handle.Release(handle);
}
public string Name
{
get { return name; }
set { name = value; }
}
}Notes
- Accessor bodies also work for indexers and for event
add/removeaccessors - Constructors, finalizers and
setaccessors must use an expression that is valid as a statement, such as an assignment or method call