/// <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"); }
public override REExpression Update(REClassObject _object) { if (__statements != null) { foreach (REStatement _statement in __statements) { _statement.Update(_object); } } return(this); }
/// <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"); }
/// <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"); }
public override REExpression Update(REClassObject _object) { //do nothing return(this); }
/// <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);
public RERefCSharp(REClassObject _parent, string _memberName) { Parent = _parent; MemberName = _memberName; }