What is differences between static constructor as the following:
class GlobalClass
{
public static DataBase dataBase;
static GlobalClass()
{
dataBase= new DataBase(@"Data Source=..;...; User ID=... ;Password=...;");
dataBase.CreateConnection();
}
}
And defined static instance in global class as the following:
class GlobalClass
{
public static GlobalClass Globals = new GlobalClass();
public DataBase dataBase;
public GlobalClass()
{
dataBase= new DataBase(@"Data Source=..;...; User ID=... ;Password=...;");
dataBase.CreateConnection();
}
}
What is differences between each type? And which is better to use?
In first case database initialized only once, when GlobalClass
accessed first time.
In second case database initialized each time when you create GlobalClass
instance. No instances - no initializations. Two instances - two initializations (only last one will be available via dataBase
field).