Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > глобальные классы? экземпляры класса


Автор: BftS 12.10.2009, 18:23
В приложении есть 3 класса.
1) Program - содержит функцию main 
2) Options - Класс содержащий 2 метода(get & load) Где, load загружает файл с настройками и парсит его в массив, а get возвращает значение определенного параметра
3) Some  -  некоторый иной класс.

Цель - получить настройки в функциях классов Program и Some.
Код

Options opt= new Options();
opt.load();
int r=opt.get("parms");
 
и такое разместить во всех функциях, где нужны настройки.(parms -  название получаемого параметра)
--- Собственно так все работает, НО
Хотелось бы что бы файл с настройками вызывался только однажды, а не каждый раз(.load() вызывается только при старте программы)

1) Где и как создавать экземпляр Options чтобы его можно было сделать "глобальным" - доступным во всех функциях, всех классов.
2) Как обращаться(вызывать) его?

Автор: Ram1reS 12.10.2009, 22:48
Во-первых, для настроек придуман app.config - смотрите Project->Project options->Settings.
Во-вторых, кому мало - курим ConfigurationSection и иже с ним.
Это даст возможность дергать параметры через статический класс Settings.
Если хотите сделать все по-своему - объявляйте класс с настройками как static, тогда не надо будет постоянно создавать новый экземпляр.

Типа того:
Код

public static class MySettings
{
    public static int a;
    public static string s;
    public static SomeClass c;
    MySettings()
    {
        LoadSettings();
    }
    
    private static void LoadSettings()
    {
    // load some settings
    }
}
////////
public static void Main()
{
    Console.WriteLine(MySettings.a);
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)