mtufail Ответов: 2

Я хочу постоянно менять значение статической переменной, как это возможно?


Я хочу постоянно менять значение переменной Year с 2019 на 2020 год, как показано ниже

private static int Year = 2019;


но я в состоянии изменить его.
Я использую asp.net mvc и изменение строки кода от контроллера приведены ниже

FirstProject.Models.MyClass.setYear(2020);


Что я уже пробовал:

public static class MyClass
    {
        private static int Year = 2019;
        public static void setYear(int year)
        {
            Year = year;
        }
        public static int getYear()
        {
            return Year;
        }

}

2 Ответов

Рейтинг:
15

OriginalGriff

Ваш код изменяет значение года "постоянно" для приложения teh - он не вернется к 2019 году, пока приложение работает.

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

Есть много типов мест, где вы могли бы сохранить его, но ... здесь есть проблемы. MVC основан на интернете, что означает, что несколько человек могут использовать его одновременно, и из-за того, как работают веб-серверы, это означает, что static переменным нельзя доверять, так как приложение "совместно используется" клиентами до тех пор, пока оно не будет выгружено, а статическая переменная также "совместно используется".

Для веб-приложения я бы хранил год в БД, обновлял его в БД и перезагружал, когда приложение пытается его использовать. Таким образом, он правильно распределяется между клиентами, и все они получат "новое значение" сразу же после его изменения.


CPallini

5.

Рейтинг:
0

F-ES Sitecore

Если вы просто хотите знать, что такое текущий год :)

public static class MyClass
{
    public static int getYear()
    {
        return DateTime.Now.Year;
    }
}