Is there any advantige using delegates instead of methods? For example:
public void LoginAuthenticate(object sender, AuthenticateEventArgs e)
{
if (Membership.ValidateUser(lgUserLogin.UserName, lgUserLogin.Password))
{
Func<string, string> getDestinationPage = (userLogin) => { //definition };
e.Authenticated = true;
lgUserLogin.DestinationPageUrl = getDestinationPage(lgUserLogin.UserName);
}
else
{
Action<string> invalidLogin = (msg) =>
{
lgUserLogin.FailureText = string.IsNullOrWhiteSpace(msg) ? "Invalid login" : msg;
e.Authenticated = false;
};
MembershipUser user = Membership.GetUser(lgUserLogin.UserName);
if (user != null)
{
if (user.IsLockedOut)
{
invalidLogin("User has been blocked");
}
else if (!user.IsApproved)
{
invalidLogin("User is not activated");
}
else
{
invalidLogin(null);
}
}
else
{
invalidLogin(null);
}
}
}
If I getDestinationPage
define as
private string getDestinationPage(string login){...}
and invalidLogin
as
private void invalidLogin(string msg){...}
does it gives any benefits?