使用Lambda自动更新变量

内特

我遇到了问题,我已经向这个社区的周围要求帮助我解决问题。问题是在修改变量后自动更新所有变量。

我有一些使用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;a更新b的值。

有办法解决这个问题吗?我真的需要帮助。如果有我可以阅读的链接,请与我分享。谢谢!

拉克什

编辑-这既可以直接更新B的值,也可以在A值更改时对其进行更新。

我修改了StorageMethods

        public class Storage
        {
            private int _a;

            public int A
            {
                get { return _a; }
                set
                {
                    _a = value;
                    B = value + 5;
                }
            }
            public int B { get; set; }
            public int C { get; set; }

            public Storage()
            {
                A = 100;
            }
        }

       public class Methods
        {
            private Storage _storage;

            public Methods(Storage storage)
            {
                _storage = storage;
            }
            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();
                }
            }
        }

Main

            var storage = new Storage();
            Methods Test = new Methods(storage);
            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);

程序输出

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

每年自动更新变量

来自分类Dev

在angularjs中自动更新范围变量

来自分类Dev

符号变量在theano中自动更新

来自分类Dev

JavaScript-数组变量自动更新

来自分类Dev

PHP变量自动更新失败

来自分类Dev

如何自动更新SharedPreferences变量?

来自分类Dev

sqlite如何从变量自动更新列

来自分类Dev

使用AJAX自动更新表格

来自分类Dev

使用crontab自动更新git仓库

来自分类Dev

使用mvvm的“自动更新总计”框

来自分类Dev

如何使用线程自动更新标签

来自分类Dev

使用javascript自动更新表格

来自分类Dev

自动更新使用Firebase或解析?

来自分类Dev

Firebase 使用 Swift 自动更新值

来自分类Dev

使用 PowerShell/PowerCLI 自动更新 WSUS

来自分类Dev

如何自动更新类的变量成员?

来自分类Dev

自动更新Javascript

来自分类Dev

自动更新datagridview

来自分类Dev

自动更新

来自分类Dev

自动更新值

来自分类Dev

密码自动更新

来自分类Dev

使用python使用JSON自动更新MYSQL表

来自分类Dev

使用HockeyApp SDK自动更新应用程序

来自分类Dev

使用TPrototypeBindSource自动更新对象中的属性

来自分类Dev

如何使用Tkinter创建自动更新的GUI?

来自分类Dev

如何使用angularjs自动更新json的连接部分

来自分类Dev

如何使用VBA在Excel中自动更新格式

来自分类Dev

使用新版本自动更新Vue网站/ PWA

来自分类Dev

如何使用自动更新公式而无需拖动