C#中的神秘线条

Pat*_*ski 3 c#

我遇到了这段代码:

// A
private readonly int value;
public int RawValue => value;

// B
public int CompareTo(Foo other) => value.CompareTo(other.value);

// C
internal int x => unchecked((value & y) + 1);
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这里发生了什么以及使用这些技术的常用方法是什么?

编辑 链接到代码:单击

And*_*yev 10

它是使用表达式成员(看起来类似于lambda表达式)声明属性(只读的)和方法的C#6语法.

public int RawValue => value;
Run Code Online (Sandbox Code Playgroud)

相当于

public int RawValue 
{
    get { return value; }
}
Run Code Online (Sandbox Code Playgroud)

public int CompareTo(Foo other) => value.CompareTo(other.value);
Run Code Online (Sandbox Code Playgroud)

相当于

public int CompareTo(Foo other)
{
    return value.CompareTo(other.value);
}
Run Code Online (Sandbox Code Playgroud)