2013-09-18 2 views
1

Я знаю, что глобальные переменные в большинстве случаев не являются хорошей идеей (особенно в ООП), но мне нужно, когда мне нужно создать массив, который может быть прочитан любой функцией или класс в моем приложении (в основном, массив будет хранить данные, которые мне бы только хотелось прочитать один раз из моей базы данных MySQL).Создание глобальных переменных в Visual C#

Было предложено создать класс «Переменные», но проблема, которую я вижу в этом, заключается в том, что мне пришлось бы делать «общедоступный» (или глобальный) экземпляр этого класса, так что создание класса doesn Я действительно решу свою проблему из того, что вижу (хотя я могу ошибаться).

Как создать массив глобальных переменных, который можно увидеть всеми классами и методами?

ответ

4

Вы хотите статический класс.

public static class Global 
{ 
    public static string[] GlobalArray { get; set; } 

    static Global() 
    { 
     GlobalArray = //etc 
    } 
} 

, которые могут быть доступны из любой точки мира через:

var x = Global.GlobalArray; 
2

Вы не можете создать глобальную переменную в C#, но вы можете создать статические классы со статическими свойствами.

public static class Global 
{ 
    public static string[] MyGlobalArray{ get; set;} 
} 
1

Вам нужен singleton pattern:

public class Variables 
{ 
    private static Variables instance = new Variables(); 

    public static Variables Instance 
    { 
    get 
    { 
     return instance; 
    } 
    } 

    public string[] GlobalArray { get; set; } 
} 

// Usage 
var myGlobalArray = Variables.Instance.GlobalArray; 

Смотрите также:

+1

Это не компилируется. Вы не можете создать статический класс. – lukegravitt

+0

@ lukegravitt, я обновил свой пример, теперь он компилируется. – AndreyAkinshin

Смежные вопросы