Просматривая Интернет, я увидел простой шаблон, который реализует (поток -безопасный )синглтон (в C #).
public sealed class MySingleton
{
private static readonly MySingleton _instance = new MySingleton();
private string[] _data = new string[10];
// Private constructor, so no outsiders have access.
private MySingleton()
{
// Initialize _data member here
}
// Static method to provide access to instance
public static MySingleton Instance
{
get { return _instance; }
}
public string GetStringCount
{
return _data.Length;
}
}
Я понимаю, что член _instance
должен быть объявлен как статический, поскольку доступ к нему осуществляется из статического метода Instance()
.
Но следует ли объявлять другие члены статическими? По определению синглтон существует только один раз, поэтому члены также могут существовать только один раз (для одного экземпляра ), точно так же, как статические переменные существуют только один раз.
Должен ли я объявить _data
статическим?