C# - Winforms - глобальные переменные

Принятие Вас должно разделить классы для различных регистраторов (хотя это не очевидно в Вашем примере), Ваша внешность решения хорошо, хотя RegistrarA и RegistrarB, вероятно, совместно использует функциональность и мог быть получен из Абстрактный базовый класс .

Как альтернатива Вашему factory функция, Вы могли указать dict, отобразившись на Ваши классы регистратора:

Registrar = {'test.com': RegistrarA, 'test.biz': RegistrarB}

Затем:

registrar = Registrar['test.com'](domain)

Один каламбур: Вы действительно не делаете Фабрики классов здесь, поскольку Вы возвращаете экземпляры, а не классы.

27
задан bluish 11 November 2013 в 14:34
поделиться

5 ответов

да, вы можете использовать статический класс. например:

static class Global
{
    private static string _globalVar = "";

    public static string GlobalVar
    {
        get { return _globalVar; }
        set { _globalVar = value; }
    }
}

и для использования в любом месте, где вы можете написать:

GlobalClass.GlobalVar = "any string value"
76
ответ дан 28 November 2019 в 04:08
поделиться

Или вы можете поместить свои глобальные объекты в app.config

6
ответ дан 28 November 2019 в 04:08
поделиться

Вы можете использовать статический класс или шаблон Singleton .

5
ответ дан 28 November 2019 в 04:08
поделиться

В одну сторону,

Обозреватель решений> Ваш проект> Свойства> Параметры. Настройки. Щелкните этот файл и добавьте свои настройки из среды IDE.

Доступ к ним можно получить по

Properties.Settings.Default.MySetting = "hello world";
5
ответ дан 28 November 2019 в 04:08
поделиться
public static class MyGlobals
{
  public static string Global1 = "Hello";
  public static string Global2 = "World";
}

public class Foo
{

    private void Method1()
    {
       string example = MyGlobals.Global1;
       //etc
    }
}
2
ответ дан 28 November 2019 в 04:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: