begin process at 2012 02 11 06:16:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > SINGLETON CODE SNIPPET

SINGLETON CODE SNIPPET


 Information sur la source

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Source .NET ( DotNet ) Classé sous :code, snippet, singleton Niveau :Débutant Date de création :08/03/2006 Date de mise à jour :08/03/2006 11:08:27 Vu / téléchargé :9 884 / 317

Auteur : Nikoui

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Cette source est un Code snippet pour Visual Studio 2005 permettant d'implémenter un singleton.

Le code snippet va créer la classe, accessible par une propriété (publique) Instance.

Remarque : Cette implémentation de singleton est "thread safe".

Source

  • /// <summary>
  • /// Singleton.
  • /// </summary>
  • sealed class ClassName
  • {
  • #region ClassName Singleton
  • /// <summary>
  • /// Unique instance of ClassName
  • /// </summary>
  • private static volatile ClassName instance = null;
  • /// <summary>
  • /// Synchronization's object
  • /// </summary>
  • private static object syncRoot = new Object();
  • /// <summary>
  • /// Get the unique instance of ClassName
  • /// </summary>
  • public static ClassName Instance
  • {
  • get
  • {
  • // Quick test
  • if (instance == null)
  • {
  • lock (syncRoot)
  • {
  • // Thread safe test
  • if (instance == null)
  • {
  • // First call, create the instance
  • instance = new ClassName();
  • }
  • }
  • }
  • return (instance);
  • }
  • }
  • #endregion // ClassName Singleton
  • /// <summary>
  • /// Private constructor of the singleton
  • /// </summary>
  • private ClassName()
  • {
  • }
  • }
    /// <summary>
    /// Singleton.
    /// </summary>
    sealed class ClassName
    {
        #region ClassName Singleton
        /// <summary>
        /// Unique instance of ClassName
        /// </summary>
        private static volatile ClassName instance = null;

        /// <summary>
        /// Synchronization's object
        /// </summary>
        private static object syncRoot = new Object();

        /// <summary>
        /// Get the unique instance of ClassName
        /// </summary>
        public static ClassName Instance
        {
            get
            {
                // Quick test
                if (instance == null)
                {
                    lock (syncRoot)
                    {
                        // Thread safe test
                        if (instance == null)
                        {
                            // First call, create the instance
                            instance = new ClassName();
                        }
                    }
                }
                return (instance);
            }
        }
        #endregion // ClassName Singleton

        /// <summary>
        /// Private constructor of the singleton
        /// </summary>
        private ClassName()
        {
        }
    }

 Conclusion

Pour "installer" ce code snippet dans Visual Studio :

- Menu Tools, puis "Code Snippets Manager".
Il suffit ensuite d'importer le fichier founit dans cette source.

Pour utiliser le code snippet :
- Dans l'éditeur de code, taper "Singleton", puis appuyer sur <Tab>.
- Remplacer ClassName par le nom de votre classe singleton, puis appuyer sur <Entrée>.

Un lien utile, pour créer/éditer des code snippets avec Snippy :
http://www.gotdotnet.com/codegallery/codegallery .aspx?id=b0813ae7-466a-43c2-b2ad-f87e4ee6bc39

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Singleton.snippetTélécharger ce fichier [Réservé aux membres club]1 683 octets

Télécharger le zip


 Historique

08 mars 2006 11:08:28 :
Manquait le constructeur du singleton...

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) LE SAVIEZ VOUS ? LIBRARIE POUR L'AFFICHAGE D'ASTUCE DANS UNE...
Source avec Zip Source avec une capture Source .NET (Dotnet) POK STATS - CALCUL ET AFFICHAGE DES PROBABILITÉS POUR LES CO...
Source avec Zip Source avec une capture Source .NET (Dotnet) EFEXP - CONTRÔLE EXPLORATEUR DE FICHIER
Source avec Zip Source avec une capture Source .NET (Dotnet) [PUZZLE] TANEA - JEU DE TYPE PUZZLE
Source avec Zip Source .NET (Dotnet) SIMULER UNE SAISIE CLAVIER VERS UNE AUTRE APPLICATION

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) DIFFÉRENTIELLE ENTRE DEUX COLLECTION par morphey_83
Source avec Zip Source avec une capture Source .NET (Dotnet) RICHTEXTBOX POUR COLORATION SYNTAXIQUE EN TEMPS REEL par Renfield
Source avec Zip Source avec une capture Source .NET (Dotnet) TRANSFORMER UN PROGRAMME EN SERVICE par xavh44
Source avec Zip Source .NET (Dotnet) [C# ET T4] TEMPLATE DE VIEW MODEL POUR LE PATTERN MVVM par Kite37
Source .NET (Dotnet) EXEMPLE D'UTILISATION D'UN OCX SANS DECLARATION PREALABLE DA... par yohan49

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) REPOSITORY GENERATOR (FOR ENTERPRISE LIBRARY) par romagny13
Source avec Zip Source .NET (Dotnet) ACTIVATION XOML DANS WORKFLOW FOUNDATION par magnarox
Source avec Zip Source avec une capture Source .NET (Dotnet) ALGORITHME SOUNDEX par Bidou
Source avec Zip Source .NET (Dotnet) COMMUNICATION CLIENT/SERVEUR BASIQUE AVEC SINGLETON par MorpionMx
Source avec Zip Source avec une capture Source .NET (Dotnet) LOGICIEL DE SAUVEGARDE DES CONNAISSANCES par yoannd

Commentaires et avis

Commentaire de MorpionMx le 17/03/2006 14:50:34 administrateur CS

Très bonne idée l'idée du .snippet :)

Commentaire de Khaled_ST le 14/02/2007 16:48:41

Merci pour ton code, mais j ai une petite question. Ici le constructeur est déclaré "private". Comment on fait alors pour créer une première instance de l'objet ?
Merci de votre réponse.

Commentaire de MorpionMx le 14/02/2007 16:51:52 administrateur CS

C'est le principe du singleton. Tu accedes a une instance unique via la propriété Instance

Commentaire de Khaled_ST le 14/02/2007 17:01:12

Oui en effet, il restais juste a dire que pour créer le premier objet dans une autre classe, au lieu de faire :
ClassName classname = new ClassName;
On nfait plutot
ClassName classname = ClassName.Instance;
Voila J'espère que ça aidera quelques uns parce que pour quelqu'un non habitué avec les singletons ce n'est pas très facile au début.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Executer du code C# [ par Skyride ] Bonjour à tousJ'espère que vous pourrez me renseigner...Je m'initie depuis quelques temps à l'environnement .NET et je commence un petit peu à m'inter Les textures [ par NICKO02 ] Pour ceux qui ont le SDK de DX9, je prend le tutorial 5.Voila j'essaies de creer une texture : Dans le fichier D3dtriangle.cs;Dans la classe GraphicsC Quel est le meilleur moyen de gerer un buffer ... [ par Hawkmoon ] Bon voila mon probleme : je connecte une socket sur un server irc mais avec le code suivant j'arrive pas a gerer les reponses du server dans un buffer Probleme DropDownList [ par jdaviaud ] J'ai un petit pb avec un dropdownlist.Quand je veux en récupérer la valeur de la ligne sélectionnée, j'utilise le code suivant :string famille = DropD array et CSharp [ par matgai ] Bonjour,Je débute en C# et je vois déjà les limites du tout-objet par rapport à C++. Voici en particulier où je bute :je veux écrire l'équivalent C++ problème de serialisation avec NetworkStream [ par Oberon ] J'aurais voulu sérialisé un objet en passant par un networkStream mais je bute sur un problème de casting...Coté serveur:BinaryFormatter formatter = n Datagrid : faire une colonne spéciale par le code behind [ par Felixlechat ] Bonjour, je sais comment ajouter une BoundColumn dans le code, et comment ajouter un ItemColumn dans la page (dans une datagrid), mais en revanche le Création d'un tableau dynamique HTML par le code... [ par pchanet ] Bonjour à tous,Je suis en train de développer la gestion d'une table HTML (type &lt;table&gt;...&lt;/table&gt;) en dynamique à partir de la page de co code ascii [ par alcamatt ] comment peut on reccupérer le code ascii d'un caractere avec csharp ?En visual basic, je crois me rappeler qu'il fallait utiliser la fonction Asc(&lt; supprimer DES fichiers [ par Franckyom50 ] Lu à tous ! J'aimerais savoir comment faire pour supprimer toutles fichiers d'un dossier spécifique. Le problème, c'est que j'arrive pas à voir co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,480 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales