I've done this exact thing just recently in an application that I've been refactoring, to make explicit the actual meaning of the code sans comments: <!-- language: c# --> protected void PaymentButton_Click(object sender, EventArgs e) Func<bool> HaveError = () => lblCreditCardError.Text == string.Empty && lblDisclaimer.Text == string.Empty; CheckInputs(); if(HaveError()) return; ... }