0
сегодня я искал для некоторых проектов с ilspy я не понимаю, как действия могут быть использованы, как это, в одном классе этот метод называетсяC# передача действия с параметрами
public void Login(Action success, Action<bool> failure)
{
if (!FB.IsInitialized)
{
Debug.Log("[FB] Not yet initialized. Will init again!");
FB.Init(new InitDelegate(this.OnInitComplete), null, null);
return;
}
new LoginWithReadPermissions(this.READ_PERMISSIONS, delegate
{
ServiceLocator.GetDB().SetBool("facebookBound", true, false);
this.OnLoginCompleted(success, failure);
}, delegate
{
failure(false);
});
}
и это другой класс, вызывается описанным выше способом
public class LoginWithReadPermissions
{
private readonly Action _failureCallback;
private readonly Action _successCallback;
public LoginWithReadPermissions(string[] scope, Action success, Action failure)
{
this._successCallback = success;
this._failureCallback = failure;
FB.LogInWithReadPermissions(scope, new FacebookDelegate<ILoginResult>(this.AuthCallback));
}
private void AuthCallback(ILoginResult result)
{
if (result.Error == null && FB.IsLoggedIn)
{
this._successCallback();
}
else
{
this._failureCallback();
}
}
}
Может кто-то пожалуйста, объясните, что происходит там, я никогда не сталкивался с такого рода использования действий. Спасибо за ответы.
Вы говорите об использовании 'delegate'? –
http://stackoverflow.com/questions/11376657/what-is-the-difference-between-delegate-action-in-c-sharp –