2015-10-30 2 views
1

Я понимаю, что вопросы о глобальных переменных в C# заданы так много раз, но если возможно, кто-нибудь сможет объяснить, как использовать экземпляр одного класса, создаваемого одним методом , но также необходимо в другом методе, поскольку я должен полагаться на один экземпляр, а не на создание нескольких экземпляров. Другие вопросы онлайн не помогли мне в том, что я видел.C# Глобальные переменные для экземпляров класса

Мой код ниже:

public void loadCreateAccountCtr() 
    { 
     // Create Controller 
     CreateAccountController ctr = new CreateAccountController(); 
     // Start Controller 
     ctr.start(); 
     // Session is active 
    } 

    public void checkCredentials(string appNum) 
    { 
     CreateAccountController ctr = new CreateAccountController(); 
     ctr.create(); 

    } 

Я создаю экземпляр CreateAccountController «» ЕГО таким образом я могу получить доступ к методам в контроллере, когда я собираюсь отправить данные в другую часть системы Мне нужно вызвать другой метод. Как мне использовать предыдущий экземпляр без создания нового экземпляра (Как видно из checkCredentials (...)

Благодаря

ответ

5

чтения о переменных областях в C# https://msdn.microsoft.com/en-us/library/aa691132(v=vs.71).aspx

private CreateAccountController ctr; 
public void loadCreateAccountCtr() 
{ 
    // Create Controller 
    ctr = new CreateAccountController(); 
    // Start Controller 
    ctr.start(); 
    // Session is active 
} 

public void checkCredentials(string appNum) 
{ 
    if (ctr != null) 
    { 
     ctr.create(); 
    } 
    else 
    { 
     //handle this case here 
    } 
} 
+1

Большое спасибо, работает как шарм, я чувствую себя немного глупо сейчас, когда это было что-то простое, о котором я не думал. (Я буду отмечать его как можно скорее) – Kenyanke

3

То, что вы описываете шаблон Singleton Design. Читайте об этом и смотрите примеры here.

Однако ответ ahmelsayed прекрасно решает вашу проблему в этой ситуации, если позже вам придется получить доступ к тому же классу из других класов ses в вашей системе, реализуя ваш CreateAccountController, поскольку Singleton решит проблему во всем мире. Вы можете вернуться к этому позже. Удачи!

+0

Вы правы, к сожалению, я не коснулся C# в течение нескольких месяцев, я видел, как он просматривал онлайн-вопрос о моем вопросе, но большинство ответов только что осложнили вопрос, который задавали. – Kenyanke

+0

Вы правы. Некоторые примеры усложняют его. В вашем случае вы можете сохранить его простым. – DDan

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