コード例 #1
0
        public void UpdateIntRefUsingFactory()
        {
            var sourceDataRule = ConstantRulesFactory.CreateConstantRule <int>("99");
            var rule           = UpdateValueRulesFactory.CreateUpdateRefValueRule <int>(sourceDataRule);

            var compileResult = rule.Compile();

            compileResult.Should().BeTrue();
            _testOutputHelper.WriteLine($"{rule.ExpressionDebugView()}");

            var myInt = 0;

            rule.RefUpdate(ref myInt);
            myInt.Should().Be(99);

            var rule2 = UpdateValueRulesFactory.CreateUpdateRefValueRule <int>();

            compileResult = rule2.Compile();
            compileResult.Should().BeTrue();
            _testOutputHelper.WriteLine($"UpdateRefValueRule<int, int>:{Environment.NewLine}" +
                                        $"{rule2.ExpressionDebugView()}");

            rule2.RefUpdate(ref myInt, -99);
            myInt.Should().Be(-99);
        }
コード例 #2
0
        public void UpdateStringRefUsingFactory()
        {
            var sourceDataRule = ConstantRulesFactory.CreateConstantRule <string>("something");
            var rule           = UpdateValueRulesFactory.CreateUpdateRefValueRule <string>(sourceDataRule);

            var compileResult = rule.Compile();

            compileResult.Should().BeTrue();
            _testOutputHelper.WriteLine($"UpdateRefValueRule<string>:{Environment.NewLine}" +
                                        $"{rule.ExpressionDebugView()}");

            var string1 = "one";

            rule.RefUpdate(ref string1);
            string1.Should().Be("something");

            // source value shall come as argument
            var rule2 = UpdateValueRulesFactory.CreateUpdateRefValueRule <string>();

            compileResult = rule2.Compile();
            compileResult.Should().BeTrue();
            _testOutputHelper.WriteLine($"UpdateRefValueRule<string, string>:{Environment.NewLine}" +
                                        $"{rule2.ExpressionDebugView()}");

            string1 = null;
            rule2.RefUpdate(ref string1, "some other value");
            string1.Should().Be("some other value");
        }