Exemple delegue

Le délégué appelle ensuite la méthode de gestion des événements sur le destinataire, en livrant les données d`événement. Il s`agit de l`objet «délégating», tel que défini ci-dessus, qui «conserve une référence à l`autre objet – le délégué – et, au moment opportun, lui envoie un message. Si les instances de délégué sont statiquement du type System. À l`aide de cette propriété des délégués, vous pouvez créer une liste d`appels de méthodes qui seront appelées lorsqu`un délégué est appelé. Voyons ce que l`exécution asynchrone est à l`aide du diagramme suivant. Dans ce modèle, vous avez des éditeurs qui vont faire une certaine logique et de publier un «événement. SecondChangeHandler (horloge d`objet, TimeInfoEventArgs timeInformation); L`événement que nous publions événement public SecondChangeHandler SecondChange; La méthode qui déclenche l`événement protected void OnSecondChange (objet Clock, TimeInfoEventArgs timeInformation) {//vérifie s`il y a des abonnés si (SecondChange! Delegate est un type référence, il fait référence à une méthode ayant la même signature que le délégué. Le modèle Event en C# trouve ses racines dans le modèle de programmation d`événements qui est populaire dans la programmation asynchrone. Le délégué peut être invoqué de deux manières: using () opérateur ou à l`aide de la méthode Invoke () de Delegate comme illustré ci-dessous. Prenons un regard concurrentiel sur ce que nous avons fait jusqu`à présent. Mais nous avons dit que l`abonné et l`éditeur sont des agents indépendants, i.

Dans les deux cas, un nouvel objet délégué est passé à la méthode ProcessPaperbackBooks. Maintenant Si le second a changé//notifier les abonnés si (DT. SimpleDelegate3. Logger (String s) {Console. Pour s`inscrire à un événement, le destinataire crée une méthode conçue pour gérer l`événement, puis crée un délégué pour cette méthode et transmet le délégué à la source de l`événement. Process (); FL. WriteLine (s); } public void Close () {streamWriter. Système espace de noms Akadia. LogoDownloaderDelegate est le protocole de délégué.

La partie fraîche ici est que nous n`avons pas eu à changer la fonction process (); le code à tout le délégué est le même indépendamment de si elle fait référence à une fonction statique ou membre. En C#, les délégués sont multicast, ce qui signifie qu`ils peuvent pointer vers plus d`une fonction à la fois (c`est-à-dire qu`ils sont basés sur le système. Notre système peut diffuser un message en utilisant les médias ci-dessus. L`exemple suivant illustre la déclaration, l`instanciation et l`utilisation d`un délégué. Ici, nous sommes juste la création d`une instance de ClassBVC et d`assigner son délégué à soi, mais ce qui est auto ici? Ci-dessous, j`entrerez ma classe ViewController dans un contrat avec le protocole LogoDownloaderDelegate, et la classe ViewController promet de remplir le contrat en implémentant les méthodes ou les variables membres que LogoDownloaderDelegate requiert matérialisée ou remplie, i. log (message); }}}//La classe FileLogger encapsule simplement le fichier d`e/S Public Class FileLogger {FileStream fileStream; StreamWriter; Constructeur public FileLogger (String filename) {fileStream = New FileStream (FileName, FileMode. DateTime DT = System. Chaque fois qu`un nouvel ensemble de types d`arguments ou de type valeur de retour est nécessaire, un nouveau type délégué doit être déclaré. Plus important encore, je vais vous montrer comment, par délégation, une sous-classe UIViewController peut être averti par l`aide qu`un fichier image a terminé le téléchargement, et puis le contrôleur de vue peut afficher l`image à l`écran. La délégation peut être utilisée pour répondre à une action particulière ou pour récupérer des données à partir d`une source externe sans avoir à connaître le type sous-jacent de cette source. Considérez un éditeur qui a publié quelque chose et il ya des abonnés qui attendent que l`éditeur de publier afin qu`ils puissent commencer leur travail.

No Comments

Sorry, the comment form is closed at this time.