Почему бы и нет?Если вы хотите видеть 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;
...