Dans .NET, existe-t-il un moyen simple de notifier une classe lorsqu'elle est hors de portée?Notification .NET instantanée hors champ?
Répondre
Oui, avec certaines langues. C++/CLI émettra des appels Dipose pour les implémenteurs IDisposable lorsque leurs allocations non heap tombent hors de portée (en leur donnant effectivement la même sémantique que la ressource allouée par la pile en C++ normal). De plus, la syntaxe destructeur C++/CLI de ~ Classname devient une implémentation de Dispose (et rend la classe implémente IDisposable).
Je m'attendrais à ce que d'autres langues ayant une destruction déterministe traditionnelle adoptent cette politique au fil du temps. Comme d'autres l'ont mentionné, vous pouvez l'émuler en C# avec "using", mais ce n'est pas tout à fait la même chose.
S'il implémente IDisposable et que vous utilisez un bloc using, bien sûr.
No.
Si vous avez besoin pour nettoyer les ressources autres que la mémoire, la mise en œuvre IDisposable et créer vos objets avec using
blocs. Si vous avez besoin de nettoyer la mémoire, vous pouvez vraiment le laisser au garbage collector.
Non, il n'y en a pas.
Non, il n'y a pas de finalisation déterministe dans un langage .NET. Le garbage collector est responsable de la finalisation des objets qui n'ont pas de racines dans l'application.
Si elle implémente IDisposable, votre méthode Dispose() découvrirait:
using (var c = new YourClassImplementsIDisposable())
{
// Stuff happens
}
// c.Dispose has been called
sinon pas, parce que votre objet est tout simplement 'traîner' jusqu'à ce que GC
Vous pouvez utiliser un finaliseur. Il serait appelé une fois déchet colelcted, mais pas immédiatement après avoir quitté la portée.
http://www.switchonthecode.com/tutorials/csharp-tutorial-object-finalizers
- 1. .NET & COM - Class_Terminate/Mise au rebut d'un objet hors champ
- 2. Notification d'événement téléphonique dans .NET
- 3. Hors champ dans le tableau généré KVC
- 4. Email Notification Service
- 5. accès à la propriété interne hors du champ d'assemblage
- 6. Bibliothèque de notification pour Windows
- 7. Cadre de notification ou d'alerte pour .NET C# composant
- 8. Notification push WPF/WCF
- 9. capture capture instantanée avec contrôle flash
- 10. La duplication instantanée d'une bibliothèque Object-Cloning?
- 11. Création d'un bot de messagerie instantanée
- 12. J'ai besoin d'un champ caché dans un contrôle .NET Repeater.
- 13. MSN Messenger comme notification - Connaissez-vous des exemples dans .NET VB .NET ou C#?
- 14. SWT Boîte animée de notification (a.k.a grille-pain) requise
- 15. Silverlight hors bac à sable?
- 16. Icône de notification iPhone
- 17. Notification Palm Pre Dashboard
- 18. notification pour touches finies
- 19. Notification dans les rails
- 20. Rails App Notification Plugins
- 21. Modèles de notification mutuelle
- 22. WPF Triggers: Modification d'un hors-champ style de contrôle dans un déclencheur
- 23. Comment créer un bot de messagerie instantanée avec C#
- 24. Définir un message d'affichage de messagerie instantanée par programme
- 25. L'intégration de la messagerie instantanée dans une application ASP.NET
- 26. Array Index hors limites
- 27. Jquery pré-charge hors
- 28. NSDate hors de portée
- 29. application web design question hors ligne
- 30. Barres de notification non modales?
Il ne posait pas de questions sur la finalisation, il demandait à être informé. Et comme il n'est disponible dans aucun langage .NET, si vous programmez en C++/CLI (le successeur de Managed C++ apparu dans VS2005), vous pouvez déclarer une référence à un objet comme s'il s'agissait d'une variable auto . Si la classe de cet objet implémente IDisposable, elle sera notifiée lorsqu'elle sortira de sa portée. C'est une caractéristique malheureusement manquante de C# IMHO. – U62
btw. ce n'était pas moi qui l'ai déprécié! – U62