C#中的神秘线条

时间:2015-03-24 12:10:10

标签: 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);

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

修改 链接到代码:click

1 个答案:

答案 0 :(得分:10)

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

public int RawValue => value;

相当于

public int RawValue 
{
    get { return value; }
}

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

相当于

public int CompareTo(Foo other)
{
    return value.CompareTo(other.value);
}