*Make sure you read Don't Use Singleton before using a Singleton at all...
Go read the whole post at http://geekswithblogs.net/BlackRabbitCoder/archive/2010/05/19/c-system.lazylttgt-and-the-singleton-design-pattern.aspx
1: public class LazySingleton3
2: {
3: // static holder for instance, need to use lambda to construct since constructor private
4: private static readonly Lazy<LazySingleton3> _instance
5: = new Lazy<LazySingleton3>(() => new LazySingleton3());
6:
7: // private to prevent direct instantiation.
8: private LazySingleton3()
9: {
10: }
11:
12: // accessor for instance
13: public static LazySingleton3 Instance
14: {
15: get
16: {
17: return _instance.Value;
18: }
19: }
20: }