C'è qualche vantaggio nell'utilizzare i delegati invece dei metodi? Ad esempio:
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);
}
}
}
Se I getDestinationPage
definisce come
%codice%
e private string getDestinationPage(string login){...}
come
invalidLogin
offre vantaggi?