Click here to Skip to main content
Click here to Skip to main content

Tagged as

Simple Singleton Pattern in C#

, 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()); } ...

Alternatives

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

8 Jul 2011
schamese
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",...
7 Nov 2011
Henry.Ayoola
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.
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...
31 Oct 2011
RaisKazi
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...
6 Nov 2011
Kabwla.Phone
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
jamesklett
You should do it like this:public sealed class MySingleton { public static readonly MySingleton SharedInstance = new MySingleton (); private MySingleton () : base() { }}

License

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

Share

About the Author

ForgaSw

Peru Peru
No Biography provided

| | Privacy | Mobile
Web04 | 2.8.140827.1 | Last Updated 27 Oct 2011
Article Copyright 2011 by ForgaSw
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid