Click here to Skip to main content
13,299,495 members (57,645 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


13 bookmarked
Posted 8 Jul 2011

Simple Singleton Pattern in C#

, 8 Jul 2011
This should do it as well:class Singleton { public static readonly Singleton m_Instance = new Singleton(); // Prevent instance creation from other classes private Singleton() { } public static Singleton Instance { get { return m_Instance; } }}And it is "Singleton",...


Members may post updates or alternatives to this current article in order to show different approaches or add new features.

9 Jul 2011
Paulo Zemek
The easiest singleton pattern is the one you used to the lock object itself.Creating any variable as static readonly and initializing it directly (or via a static constructor) will already make it singleton.Also, considering that "lock" clears all the caches, you don't need to declare the...
7 Nov 2011
Jon Skeet has written an article giving six singleton implementations in C#. The simplest only works in .NET 4:public sealed class Singleton{ private static readonly Lazy lazy = new Lazy(() => new Singleton()); public static Singleton Instance {...
6 Nov 2011
Eddy Vluggen
I'll be shot for posting this as an alternative, but I'm too curious for the answer.Shashank Bisen wrote: Ensure a class only has one instance.Provide a global point of access to it....As stated above, a singleton is a class that can be instantiated once, and only once.What is the...
6 Jul 2011
Shashank Bisen
9 alternatives  
A brief explaination of how to implement the Singleton pattern class in multithreading environment.
31 Oct 2011
Here is an alternate sample of "Singleton" Pattern. And I hope it is easier to understand.public class MySigleton{ private static MySigleton instance; private MySigleton() { } public static MySigleton InstanceMySigleton { get { if...
30 Oct 2011
Paulo Zemek
The problem with alternative 3 and 4 is that it is not multi-threaded.Two threads may check for null, then the two will create the new instance. The race condition only happens at the first accesses. If a single thread accesses the object, then later many threads do the access, there is no...
27 Oct 2011
Another alternative: class Singleton { public static Singleton m_Instance; //Prevent instance creation from other classes private Singleton() { } public static Singleton Instance { get { return m_Instance ?? (m_Instance = new Singleton()); } ...
6 Nov 2011
Make it a generic class and fix your problem forever. This works because the compiler turns the generic into a new class (something like SigletonManagerOfTypeParamterTypeName). So the static variables are not shared amongst instances...public static class Singleton where...
8 Nov 2011
You should do it like this:public sealed class MySingleton { public static readonly MySingleton SharedInstance = new MySingleton (); private MySingleton () : base() { }}


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

| | Privacy | Terms of Use | Mobile
Web01 | 2.8.171207.1 | Last Updated 8 Jul 2011
Article Copyright 2011 by schamese
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid