示例#1
0
 /// <summary>
 /// Pour une expression A.b.c, passer en argument la <see cref="REClassObject"/> du type A,
 /// et ()=>((A)null).b.c
 /// </summary>
 public REMemberExpression(REClassObject parent, Expression <Func <object> > _expression)
 {
     MembersNames(_expression);
     Parent = parent ?? throw new Exception
                        (@"_parent ne doit pas être null. 
                          Si _parent ne peut être aquis au moment de cet instanciation, 
                          utiliser un constructeur réclamant string _parentTypeName, ou Type _parentType");
 }
示例#2
0
 public override REExpression Update(REClassObject _object)
 {
     if (__statements != null)
     {
         foreach (REStatement _statement in __statements)
         {
             _statement.Update(_object);
         }
     }
     return(this);
 }
示例#3
0
        /// <summary>
        /// Pour une expression A.b.c, passer en argument la <see cref="REClassObject"/> du type A,
        /// et "b.c".
        /// </summary>
        public REMemberExpression(REClassObject parent, string expression)
        {
            string[] _names = expression.Split('.');
            Names = new List <string>();
            foreach (string _name in _names)
            {
                Names.Add(_name);
            }

            Parent = parent ?? throw new Exception
                               (@"parent ne doit pas être null. 
                                 Si parent ne peut être aquis au moment de cet instanciation, 
                                 utiliser un constructeur réclamant string parentTypeName, ou Type parentType");
        }
示例#4
0
        /// <summary>
        /// Pour une expression A.b.c, passer en argument la <see cref="REClassObject"/> du type A,
        /// et "b", "c".
        /// </summary>
        public REMemberExpression(REClassObject parent, params string[] expression)
        {
            if (expression == null)
            {
                throw new ArgumentNullException("_expression");
            }
            Names = new List <string>();
            foreach (string _name in expression)
            {
                Names.Add(_name);
            }

            Parent = parent ?? throw new Exception
                               (@"parent ne doit pas être null. 
                                 Si _parent ne peut être aquis au moment de cet instanciation, 
                                 utiliser un constructeur réclamant string parentTypeName, ou Type parentType");
        }
示例#5
0
 public override REExpression Update(REClassObject _object)
 {
     //do nothing
     return(this);
 }
示例#6
0
 /// <summary>
 /// Si cette <see cref="REExpression"/> se base sur un <see cref="REClassObject"/>
 /// du même type que _object, le remplace par _object.
 /// Ne se propage pas aux enfants de cette expression.
 /// </summary>
 public abstract REExpression Update(REClassObject _object);
示例#7
0
 public RERefCSharp(REClassObject _parent, string _memberName)
 {
     Parent     = _parent;
     MemberName = _memberName;
 }