Похоже, вы в основном привыкли использовать глобальные переменные для передачи состояния. Это вообще очень плохая идея.
Почему ваш метод не возвращает значение основного счета? Затем это можно передать другим вещам, которые в этом нуждаются.
Если вы обнаружите, что у вас много статических членов - и, в частности, если другие классы извлекают изменяемые статические переменные - подумайте, можно ли применить более внеплановый дизайн. Это будет легче понять, легче тестировать и легче поддерживать.
РЕДАКТИРОВАТЬ: Хорошо, так что в настоящее время у вас есть:
public static class Common
{
public static int PrimaryAccount;
// other static fields
public static void PrepareReportParameters(string reportParameters)
{
// Code to set the fields
}
}
Вместо этого используйте обычный класс:
public class ReportParameters
{
public int PrimaryAccount { get; private set; }
// Other properties
private ReportParameters(int primaryAccount, ....)
{
this.PrimaryAccount = primaryAccount;
}
// Could use a constructor instead, but I prefer methods when they're going to
// do work
public static ReportParameters Parse(string report)
{
// Parse the parameter, save values into local variables, then
return new ReportParameters(primaryAccount, ...);
}
}
Затем вызовите это из остальной части вашего кода и передайте ссылку ReportParameters
на все, что ему нужно.