【发布时间】:2019-10-28 14:00:02
【问题描述】:
我遇到了一个问题,我已经在这个社区中请求帮助我解决这个问题。问题是在修改变量时自动更新所有变量。
我有使用lambda 自动更新变量b 的提示。
在此之后,我阅读了一篇关于使用 get & set 的帖子。但是,即使我在下面执行这样的操作,变量 b 也不会更新。
private static int b;
public int B
{
get { return b; }
set { b = a + 5; }
}
我也找不到一种方法来使用 lambda 并设置在一起。下面是我用来测试的代码。
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的值。
有没有办法解决这个问题?我真的需要帮助。如果有我可以阅读的链接,请与我分享。谢谢!
【问题讨论】:
-
不要让它们成为静态的......它们正在保持状态。
-
私有 int b = 0;私人int a;公共 int A { 得到 { 返回一个; } 设置 { a = 值; b++; } }
标签: c# variables lambda updates