Синглтон картина:
public class Log
{
private static Log instance;
private Log() { }
public static Log Instance
{
get
{
return instance ?? (instance = new Log());
}
}
}
Использование он, вызывая Log.Instance и т. д.
Для вызова этого с помощью параметра, вам нужно сделать что-то вроде этого:
public class Log
{
private string foo;
private static Log instance;
public static Log Instance
{
get
{
if (instance == null)
{
throw new InvalidOperationException("Call CreateInstance(-) to create this object");
}
else
{
return instance;
}
}
}
private Log(string foo) { this.foo = foo; }
public static Log CreateInstance(string foo)
{
return instance ?? (instance = new Log(foo));
}
}
Однако, это вообще плохая идея использовать одиночек в этой усадьбе. Посмотрите на зависимость/инверсию управления, чтобы увидеть, как это можно решить.
'Start.Log.Write (...)' –
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он слишком прост – Amit
@AndreyNasonov - прочитайте код еще раз. – Amit