Создание глобальной переменной int - PullRequest
0 голосов
/ 15 ноября 2018

При входе в систему я хочу использовать EmployeeId в разных окнах .Какое хорошее решение для этого?

Чтобы после входа в систему EmployeeId было public int для всех окон .

Мы используем SQL Serverдля входа в систему.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Почему бы и нет?Если вы хотите видеть EmployeeId как глобальную переменную , вы можете реализовать подпрограмму, как показано ниже.Но убедитесь, что EmployeeId является поточно-безопасным :

namespace MyNameSpace {
  ...
  public static class MyEnvironmentVariables {
    // Lazy<int> - let EmployerId be thread safe (and lazy)
    private static Lazy<int> GetEmployeeId = new Lazy<int>(() => {
      //TODO: implement it
      return ObtainEmployeeIdFromDataBase();
    });

    public static int EmployeeId {
      get {
        return GetEmployeeId.Value;
      }
    }
  }

, тогда с помощью using static вы можете видеть это так, как если бы у вас была глобальная переменная :

  // static: we don't want to mention pesky MyEnvironmentVariables
  using static MyNameSpace.MyEnvironmentVariables;

  ...
  public class MyDifferentWindow {
    ...
    public void MyMethod() {
      // we can use EmployerId as if it's a global variable
      int id = EmployeeId;
      ... 
0 голосов
/ 15 ноября 2018

Если предположить, что приложение WinForms или WPF, то:

class Program
{
    public static int EmployeeId {get;set;}

}

class OtherWindow
{
    void Function()
    {
       int employeeId = Program.EmployeeId;

    }
}

Если ваше приложение является веб-сервером или другой «многопользовательской» системой, вам нужно будет найти другой способ.

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