Использование эксплицированных элементов позволяет вам определить тело метода или свойства как одно выражение без ключевого слова return (если оно что-то возвращает).
Например, он превращает эти
int Method1()
{
return 5;
}
void Method2()
{
Console.WriteLine();
}
в эти
int Method1() => 5;
void Method2() => Console.WriteLine();
Разница возникает, когда вы выбрасываете исключение из тела:
void Method3()
{
throw new Exception();
}
Однако следующее не будет компилироваться:
void Method3() => throw new Exception();
со следующими сообщениями:
Warning The member 'Program.Exception()' does not hide an inherited member. The new keyword is not required.
Error 'Program.Exception()' must declare a body because it is not marked abstract, extern, or partial
Error ; expected
Error Invalid token 'throw' in class, struct, or interface member declaration
Error Method must have a return type
Error Invalid expression term 'throw'
Почему?