or que métodos com apenas uma instrução precisam de chave

public void Finalise()
    ProcessFinalisation(true);

Não compila, mas a versão correta:

public void Finalise()
{
    ProcessFinalisation(true);
}

Compila bem (é claro

Se for permitido if sem colchetes, quando o código a seguir tiver apenas uma linha:

if(true)
    CallMethod();

Por que o mesmo não é permitido para métodos com uma linha a seguir? Existe algum motivo técnico?

questionAnswers(4)

yourAnswerToTheQuestion