方法后更改变量值

时间:2019-10-24 09:43:05

标签: c# variables methods

感谢您过去帮助解决多个编码问题,但我偶然发现了另一个问题。我真的需要一些指导。

在下面的脚本中,我试图在b函数中调用met1, met2 and met3时更改Main的值。

    class Class3
{
    public class Storage
    {
        public static int a = 100;
        public static int b = a + 5;
    }
public static void Main()
    {
        Methods Test = new Methods();
        Console.WriteLine("Original a value: {0}", Storage.a);
        Console.WriteLine("b value: {0}", Storage.b);
        Test.Met1();
        Console.WriteLine("After met1: {0}", Storage.a);
        Console.WriteLine("b value: {0}", Storage.b);
        Test.Met2();
        Console.WriteLine("After met2: {0}", Storage.a);
        Console.WriteLine("b value: {0}", Storage.b);
        Test.Met3();
        Console.WriteLine("After met3: {0}", Storage.a);
        Console.WriteLine("b value: {0}", Storage.b);
    }
    public class Methods
    {
        public void Met1()
        {
            Storage.a -= 10;
        }
        public void Met2()
        {
            Storage.a -= 10;
        }
        public void Met3()
        {
            Console.WriteLine("{0}", Storage.a);
            Met1();
            Met2();
            if (Storage.a > 10)
            {
                Met3();
            }
        }
    }
}

根据我上面的代码,即使b的值发生变化,a的值仍保持在105。据我所知,没有再次调用变量b来更改其值。

是否应该将变量b用作方法并调用它?这只是我做的一个示例,每当公式中的一个变量发生更改时,我就有50多个需要更改的公式。我认为创建50个以上的方法不是一个好主意,因为应该有更好的编码方法。

谢谢!

1 个答案:

答案 0 :(得分:3)

字段不会自动更改。这意味着b = a + 5会将b设置为105。要每次重新计算b的值,可以将其更改为以下属性:

public static int b => a + 5;

这样,每次您访问b时,它都会计算a + 5