Lazy, thread-safe Singleton (using Lazy) C# with Example



Lazy, thread-safe Singleton (using Lazy) C# with Example

.Net 4.0 type Lazy guarantees thread-safe object initialization, so this type could be used to make Singletons. 
public class LazySingleton 
{ 
private static readonly Lazy _instance = 
new Lazy(() => new LazySingleton()); 
public static LazySingleton Instance 
{ 
get { return _instance.Value; } 
} 
private LazySingleton() { } 
} 
Using Lazy will make sure that the object is only instantiated when it is used somewhere in the calling code. 
A simple usage will be like: 
using System; 
public class Program 
{ 
public static void Main() 
{ 
var instance = LazySingleton.Instance; 
} 
} 
Live Demo on .NET Fiddle 

0 Comment's

Comment Form

Submit Comment