Пример #1
0
        public void WrapTest3()
        {
            FuncWrapper sut = Fun.Wrap((string s, int x, bool y) => String.Format(s, y ? x : 0));

            sut.Should().NotBeNull();
            sut.Should().BeOfType <FuncWrapper>();
        }
Пример #2
0
        public void WrapTest5()
        {
            FuncWrapper sut = Fun.Wrap((string s, int x, bool y, decimal z, char c) => String.Format(s + c, y ? x : z));

            sut.Should().NotBeNull();
            sut.Should().BeOfType <FuncWrapper>();
        }
Пример #3
0
        public void WrapTest2()
        {
            FuncWrapper sut = Fun.Wrap((string s, int x) => String.Format(s, x));

            sut.Should().NotBeNull();
            sut.Should().BeOfType <FuncWrapper>();
        }
Пример #4
0
        public void WrapTest1()
        {
            FuncWrapper sut = Fun.Wrap((int a) => a);

            sut.Should().NotBeNull();
            sut.Should().BeOfType <FuncWrapper>();
        }
Пример #5
0
        public void WrapTest(object x)
        {
            FuncWrapper sut = Fun.Wrap(() => x);

            sut.Should().NotBeNull();
            sut.Should().BeOfType <FuncWrapper>();
        }
Пример #6
0
        public void AsFunTest(object x)
        {
            FuncWrapper sut = x.AsFun();

            sut.Should().NotBeNull();
            sut.Should().BeOfType <FuncWrapper>();
        }
Пример #7
0
        public void ShouldHandleRemoteCallbacksCorrectly()
        {
            connection.RegisterHandler("testCallback", (Action <int, FuncWrapper>)mockHandlers.Object.TestCallback);
            FuncWrapper generatedFuncWrapper = null;

            mockHandlers.Setup(h => h.TestCallback(42, It.IsAny <FuncWrapper>()))
            .Callback((int i, FuncWrapper f) => generatedFuncWrapper = f);
            connection.HandleMessage("['call',0,'testCallback',[1],42,'99095a90-1997-11e3-8ffd-0800200c9a66']");
            mockHandlers.Verify(h => h.TestCallback(42, It.IsAny <FuncWrapper>()), Times.Once());
            generatedFuncWrapper(42);
            Assert.AreEqual(connection.sentMessages[1], "[\"call\",0,\"99095a90-1997-11e3-8ffd-0800200c9a66\",[],42]");
        }
Пример #8
0
        public static Predicate <T> ToPredicate <T>(this Func <T, bool> func)
        {
            var target = func.Target;

            if (target is PredicateWrapper <T> predicateWrapper)
            {
                return(predicateWrapper.Predicate);
            }
            var wrapper = new FuncWrapper <T>(func);

            return(wrapper.Invoke);
        }
Пример #9
0
        public static Predicate <T> ToPredicate <T>(this Func <T, bool> func)
        {
            var target           = func.Target;
            var predicateWrapper = target as PredicateWrapper <T>;

            if (predicateWrapper != null)
            {
                return(predicateWrapper.Predicate);
            }
            else
            {
                var wrapper = new FuncWrapper <T>(func);
                return(wrapper.Invoke);
            }
        }
    static void Main()
    {
        int i = 1;
        // Capture i in a delegate; each time the delegate
        // is executed, you'll get a different value. Each
        // time ToString is called, the delegate will be called
        var wrapper = new FuncWrapper(() => i.ToString());

        FormattableString dynamicString = $"i = {wrapper}";

        while (i < 10)
        {
            Console.WriteLine(dynamicString);
            i++;
        }
    }
Пример #11
0
 public static IFunctionSignature GetFuncType(this FuncWrapper method)
 => new FunctionSignature(null, method.ResultType.LookupType(),
                          method.ArgTypes.Select(p => p.LookupType()).ToArray());