Static constructor and C# implementation
Static Constructor
- Instance constructors are used to initialize an object
- Static constructors are used to initialize a class
- Will only ever be executed once
- Run before the first object of that type is created.
- Have no parameter
- Do not take an access modifier
- May co-exist with a class constructor
Syntax:
class Lion
{
static Lion()
{
// class-specific initialization
}
}
Example:
class RandomNumberGenerator
{
private static Random randomNumber;
public static string AuthorName { get; set; }
public RandomNumberGenerator(String msg)
{
Console.WriteLine(msg);
//Constructor for object
}
//Static constructor
static RandomNumberGenerator()
{
AuthorName = "Mahedee Hasan";
randomNumber = new Random();
}
public int Next()
{
return randomNumber.Next();
}
}
class Program
{
static void Main(string[] args)
{
RandomNumberGenerator randomNumber
= new RandomNumberGenerator("Generate 10 Random Number");
for (int i = 0; i < 10; i++)
{
Console.WriteLine(randomNumber.Next());
}
Console.WriteLine("Author Name: " + RandomNumberGenerator.AuthorName);
Console.ReadKey();
}
}