Совместно использовать переменную для использования двумя функциями, не делая ее глобальной - PullRequest
0 голосов
/ 01 сентября 2011

Я нахожусь в ситуации, когда переменная должна быть разделена на две функции.Один из способов - сделать его глобальным.Но сделав его глобальным, другие функции также будут иметь доступ к этой переменной.Я хочу, чтобы эта конкретная переменная была доступна только выбранным функциям.Есть ли способ достичь такого типа функциональности, сделав его глобальным с ограничением или другим способом?

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Вы можете передать его между функциями в качестве параметра.

1 голос
/ 01 сентября 2011

Помимо «классического» способа работы с замыканиями:

public class ClosureProvider {
  private Foo shared;

  public Func<object> GetFirst() {
    return new Func<object>(() => { /* Use shared and whatever else */ });
  }

  public Action<Bar> GetSecond() {
    return new Action<Bar>(bar => { /* Use shared and whatever else */ });
  }
}

Компилятор c # создаст для вас требуемую инфраструктуру, а две возвращенные функции имеют доступ к общему и другим вещам, которые вы хотите использовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...