Static class lifetime C# with Example



Static class lifetime C# with Example

A static class is lazily initialized on member access and lives for the duration of the application domain. 
void Main() 
{ 
Console.WriteLine("Static classes are lazily initialized"); 
Console.WriteLine("The static constructor is only invoked when the class is first accessed"); 
Foo.SayHi(); 
Console.WriteLine("Reflecting on a type won't trigger its static .ctor"); 
var barType = typeof(Bar); 
Console.WriteLine("However, you can manually trigger it with 
System.Runtime.CompilerServices.RuntimeHelpers"); 
RuntimeHelpers.RunClassConstructor(barType.TypeHandle); 
} 
// Define other methods and classes here 
public static class Foo 
{ 
static Foo() 
{ 
Console.WriteLine("static Foo.ctor"); 
} 
public static void SayHi() 
 

{ 
Console.WriteLine("Foo: Hi"); 
} 
} 
public static class Bar 
{ 
static Bar() 
{ 
Console.WriteLine("static Bar.ctor"); 
} 
} 

0 Comment's

Comment Form

Submit Comment