Ответ 1
В соответствии с MSDN это одна из функций С# 6. ReSharper9 частично поддерживает его, и вы, вероятно, включили его немного раньше.
Цитата из MSDN:
Элементы функции, выражающие выражение, позволяют использовать методы, свойства и другие типы членов функции, чтобы иметь тела, которые являются выражениями вместо блоков операторов, как и с лямбда-выражениями.
Способы, а также определяемые пользователем операторы и преобразования могут быть заданы тело выражения с помощью "стрелки лямбды":
public Point Move(int dx, int dy) => new Point(x + dx, y + dy); public static Complex operator +(Complex a, Complex b) => a.Add(b); public static implicit operator string(Person p) => "\{p.First} \{p.Last}";
Эффект точно такой же, как если бы методы имели тело блока с одним оператором return.
Для методов возврата пустоты - и задачи, возвращающие методы async - синтаксис стрелки все еще применяется, но выражение, следующее за стрелкой должно быть выражением оператора (так же, как правило для lambdas):
public void Print() => Console.WriteLine(First + " " + Last);
В свойствах и индексаторах могут быть только получатели и сеттеры свойства и индексаторы могут иметь тело выражения:
public string Name => First + " " + Last; public Customer this[long id] => store.LookupCustomer(id);
Обратите внимание, что ключевое слово get отсутствует: это подразумевается использованием синтаксис тела выражения.
Подробнее здесь: http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx