У меня была проблема, и я обратился к сообществу с просьбой помочь мне в ее решении. Проблема заключается в автоматическом обновлении всех переменных при изменении переменной.
У меня есть советы по использованию lambda для автоматического обновления переменной b
.
* 1007. * После этого я прочитал пост об использовании get & set. Тем не менее, даже когда я делаю что-то подобное ниже, переменная
b
не будет обновляться.
private static int b;
public int B
{
get { return b; }
set { b = a + 5; }
}
Я также не смог найти способ использовать лямбду и собрать все вместе. Ниже приведен код, который я использую для тестирования.
class Class3
{
public class Storage
{
public static int a = 100;
//public static int b => a + 5;
public static int b => a + 5;
public static int c;
}
public static void Main()
{
Methods Test = new Methods();
Console.WriteLine("Original a value: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Test.Met1();
Console.WriteLine("After met1: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Test.Met2();
Console.WriteLine("After met2: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Test.Met3();
Console.WriteLine("After met3: {0}", Storage.a);
Console.WriteLine("b value: {0}", Storage.b);
Console.WriteLine("c value: {0}", Storage.c);
Storage.b += 1;
Console.WriteLine("b value: {0}", Storage.b);
}
public class Methods
{
public void Met1()
{
Storage.a -= 10;
Storage.c = Storage.a;
}
public void Met2()
{
Storage.a -= 10;
Storage.c = Storage.a;
}
public void Met3()
{
Console.WriteLine("{0}", Storage.a);
Storage.c = Storage.a;
Met1();
Met2();
if (Storage.a > 10)
{
Met3();
}
}
}
}
Я хотел бы видеть, что b
обновляется каждый раз, когда a
меняет значение. Кроме того, код должен позволять Storage.b += 1;
обновить значение b.
Есть ли способ обойти это? Мне действительно нужна помощь с этим. Если есть ссылка, которую я мог бы прочитать, поделитесь ею со мной. Спасибо!