using System; using System.Reflection.Emit; namespace System.Linq.Expressions { /// Represents a named parameter expression. // Token: 0x0200002E RID: 46 public sealed class ParameterExpression : Expression { // Token: 0x06000248 RID: 584 RVA: 0x0000C004 File Offset: 0x0000A204 internal ParameterExpression(Type type, string name) : base(ExpressionType.Parameter, type) { this.name = name; } /// Gets the name of the parameter. /// A that contains the name of the parameter. // Token: 0x17000033 RID: 51 // (get) Token: 0x06000249 RID: 585 RVA: 0x0000C018 File Offset: 0x0000A218 public string Name { get { return this.name; } } // Token: 0x0600024A RID: 586 RVA: 0x0000C020 File Offset: 0x0000A220 private void EmitLocalParameter(EmitContext ec, int position) { ec.ig.Emit(OpCodes.Ldarg, position); } // Token: 0x0600024B RID: 587 RVA: 0x0000C034 File Offset: 0x0000A234 private void EmitHoistedLocal(EmitContext ec, int level, int position) { ec.EmitScope(); for (int i = 0; i < level; i++) { ec.EmitParentScope(); } ec.EmitLoadLocals(); ec.ig.Emit(OpCodes.Ldc_I4, position); ec.ig.Emit(OpCodes.Ldelem, typeof(object)); ec.EmitLoadStrongBoxValue(base.Type); } // Token: 0x0600024C RID: 588 RVA: 0x0000C09C File Offset: 0x0000A29C internal override void Emit(EmitContext ec) { int num = -1; if (ec.IsLocalParameter(this, ref num)) { this.EmitLocalParameter(ec, num); return; } int num2 = 0; if (ec.IsHoistedLocal(this, ref num2, ref num)) { this.EmitHoistedLocal(ec, num2, num); return; } throw new InvalidOperationException("Parameter out of scope"); } // Token: 0x040000BD RID: 189 private string name; } }