【问题标题】:Changing variable values after method在方法之后更改变量值
【发布时间】:2019-10-24 09:43:05
【问题描述】:

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

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

    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 的值保持在 105,即使 a 的值发生了变化。从这里我可以看出,变量b 没有被再次调用来改变它的值。

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

谢谢!

【问题讨论】:

    标签: c# variables methods


    【解决方案1】:

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

    public static int b => a + 5;
    

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

    【讨论】:

    • 上帝保佑你的雨!简单高效,非常感谢。我将详细了解 => 的用法
    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2023-03-26
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多