Проходные параметры - PullRequest
       10

Проходные параметры

0 голосов
/ 17 августа 2011

Привет, ребята, у меня есть один вопрос,

Если у меня есть последовательность методов, например:

Main()
{
  Method1();
}

Method1()
{
  Method2();
}

Method2()
{
  Method3();
}

Method3()
{
  ObtainsUserPermission(httpContext.Current.User.Name);
}

Как лучше всего это сделать, используя параметр "httpContext.Current.User.Name" в последнем методе 3 или передавая параметр в каждом методе? Как это:

Main()
{
  Method1(httpContext.Current.User.Name);
}

Method1(string name)
{
  Method2(name);
}

Method2(string name)
{
  Method3(name);
}

Method3(string name)
{
  ObtainsUserPermission(name);
}

спасибо за все.

1 Ответ

1 голос
/ 17 августа 2011

Это пахнет как магические параметры.

Хорошее практическое правило - если вы хотите, чтобы выполнение метода method3 () зависело от имени, передайте имя в качестве параметра.В общем, вы не должны использовать глобалы внутри функций.Это может стать сложным для отладки и обслуживания.Исключение составляют члены класса, в этом случае ваши члены видны внутри методов, и нет необходимости передавать их в качестве параметров.

...