Click here to Skip to main content
15,890,527 members
Articles / Programming Languages / C#
Alternative
Tip/Trick

Simple Singleton Pattern in C#

Rate me:
Please Sign up or sign in to vote.
3.83/5 (20 votes)
8 Jul 2011CPOL 33.6K   12   14
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",...

This should do it as well:


C#
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", not a "single Ton"... SCNR

License

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



Comments and Discussions

 
QuestionVote 2 Pin
Sinisa Hajnal23-Mar-16 1:21
professionalSinisa Hajnal23-Mar-16 1:21 
GeneralMy vote of 2 Pin
Bartlomiej Filipek6-Oct-13 23:31
Bartlomiej Filipek6-Oct-13 23:31 
GeneralMy vote of 2 Pin
Akhil Mittal26-Feb-13 22:54
professionalAkhil Mittal26-Feb-13 22:54 
GeneralMy vote of 2 Pin
Oleksandr Kulchytskyi29-Dec-12 3:19
professionalOleksandr Kulchytskyi29-Dec-12 3:19 
GeneralReason for my vote of 2 This alternative is not 'lazyloading... Pin
Kabwla.Phone1-Nov-11 3:02
Kabwla.Phone1-Nov-11 3:02 
GeneralRe: Reason for my vote of 2This alternative is not 'lazyloading... Pin
Ian A Davidson10-Apr-13 15:19
Ian A Davidson10-Apr-13 15:19 
GeneralAn exception thrown inside Singletin's .ctor will be thrown ... Pin
Kelqualyn31-Oct-11 20:44
Kelqualyn31-Oct-11 20:44 
GeneralRe: An exception thrown inside Singletin's .ctor will be thrown ... Pin
Ian A Davidson10-Apr-13 15:33
Ian A Davidson10-Apr-13 15:33 
GeneralRe: An exception thrown inside Singletin's .ctor will be thrown ... Pin
Kelqualyn11-Apr-13 1:27
Kelqualyn11-Apr-13 1:27 
GeneralRe: An exception thrown inside Singletin's .ctor will be thrown ... Pin
Ian A Davidson11-Apr-13 2:04
Ian A Davidson11-Apr-13 2:04 
GeneralReason for my vote of 5 the simplest and because of it the b... Pin
Robert Krzysztof Winkler31-Oct-11 2:03
Robert Krzysztof Winkler31-Oct-11 2:03 
GeneralRe: Reason for my vote of 5the simplest and because of it the b... Pin
Ian A Davidson10-Apr-13 14:37
Ian A Davidson10-Apr-13 14:37 
It is one option. It is not necessarily the "best". There may be times to use this option, but there may be times to use the option of creating the single instance object from within the "Instance" property.

Also, since this code is supposed to be an example, I'm afraid it is not a very good one:
1) Note that the single instance object (m_Instance in this case) should be private.
2) You should not allow inheritance from a single instance class, so it should be sealed.

C#
sealed class Singleton {
    private static readonly Singleton m_Instance = new Singleton();

    // Prevent instance creation from other classes
    private Singleton() { }

    public static Singleton Instance { get { return m_Instance; } }

    // Non-static instance members here...
}


Regards,
Ian.
GeneralThe field should probably be private. PinPopular
Richard Deeming13-Jul-11 8:11
mveRichard Deeming13-Jul-11 8:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.