Exemplo n.º 1
0
        public void InvalidArgumentIndex()
        {
            Expression  key   = Expression.Constant("Key");
            Expression  value = Expression.Constant(42);
            ElementInit init  = Expression.ElementInit(typeof(Dictionary <string, int>).GetMethod("Add"), key, value);

            AssertExtensions.Throws <ArgumentOutOfRangeException>("index", () => init.GetArgument(-1));
            AssertExtensions.Throws <ArgumentOutOfRangeException>("index", () => init.GetArgument(2));
            AssertExtensions.Throws <ArgumentOutOfRangeException>("index", () => init.GetArgument(3));
            AssertExtensions.Throws <ArgumentOutOfRangeException>("index", () => init.GetArgument(int.MaxValue));
        }
Exemplo n.º 2
0
        public void CanAccessArguments()
        {
            Expression  key   = Expression.Constant("Key");
            Expression  value = Expression.Constant(42);
            ElementInit init  = Expression.ElementInit(typeof(Dictionary <string, int>).GetMethod("Add"), key, value);

            Assert.Equal(2, init.ArgumentCount);
            Assert.Same(key, init.GetArgument(0));
            Assert.Same(value, init.GetArgument(1));
            Assert.Equal(new[] { key, value }, init.Arguments);
        }
Exemplo n.º 3
0
        protected override ElementInit VisitElementInit(ElementInit initializer)
        {
            Out(initializer.AddMethod.ToString());
            string sep = ", ";

            Out('(');
            for (int i = 0, n = initializer.ArgumentCount(); i < n; i++)
            {
                if (i > 0)
                {
                    Out(sep);
                }
                Visit(initializer.GetArgument(i));
            }
            Out(')');
            return(initializer);
        }