Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Ast / RuntimeVariablesExpression.cs / 1305376 / RuntimeVariablesExpression.cs
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Dynamic.Utils; using System.Runtime.CompilerServices; namespace System.Linq.Expressions { ////// An expression that provides runtime read/write access to variables. /// Needed to implement "eval" in some dynamic languages. /// Evaluates to an instance of #if !SILVERLIGHT [DebuggerTypeProxy(typeof(Expression.RuntimeVariablesExpressionProxy))] #endif public sealed class RuntimeVariablesExpression : Expression { private readonly ReadOnlyCollectionwhen executed. /// _variables; internal RuntimeVariablesExpression(ReadOnlyCollection variables) { _variables = variables; } /// /// Gets the static type of the expression that this ///represents. /// The public sealed override Type Type { get { return typeof(IRuntimeVariables); } } ///that represents the static type of the expression. /// Returns the node type of this Expression. Extension nodes should return /// ExpressionType.Extension when overriding this method. /// ///The public sealed override ExpressionType NodeType { get { return ExpressionType.RuntimeVariables; } } ///of the expression. /// The variables or parameters to which to provide runtime access. /// public ReadOnlyCollectionVariables { get { return _variables; } } /// /// Dispatches to the specific visit method for this node type. /// protected internal override Expression Accept(ExpressionVisitor visitor) { return visitor.VisitRuntimeVariables(this); } ////// Creates a new expression that is like this one, but using the /// supplied children. If all of the children are the same, it will /// return this expression. /// /// Theproperty of the result. /// This expression if no children changed, or an expression with the updated children. public RuntimeVariablesExpression Update(IEnumerablevariables) { if (variables == Variables) { return this; } return Expression.RuntimeVariables(variables); } } public partial class Expression { /// /// Creates an instance of /// An array of. /// objects to use to populate the collection. /// An instance of public static RuntimeVariablesExpression RuntimeVariables(params ParameterExpression[] variables) { return RuntimeVariables((IEnumerablethat has the property equal to and the property set to the specified value. )variables); } /// /// Creates an instance of /// A collection of. /// objects to use to populate the collection. /// An instance of public static RuntimeVariablesExpression RuntimeVariables(IEnumerablethat has the property equal to and the property set to the specified value. variables) { ContractUtils.RequiresNotNull(variables, "variables"); var vars = variables.ToReadOnly(); for (int i = 0; i < vars.Count; i++) { Expression v = vars[i]; if (v == null) { throw new ArgumentNullException("variables[" + i + "]"); } } return new RuntimeVariablesExpression(vars); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Dynamic.Utils; using System.Runtime.CompilerServices; namespace System.Linq.Expressions { /// /// An expression that provides runtime read/write access to variables. /// Needed to implement "eval" in some dynamic languages. /// Evaluates to an instance of #if !SILVERLIGHT [DebuggerTypeProxy(typeof(Expression.RuntimeVariablesExpressionProxy))] #endif public sealed class RuntimeVariablesExpression : Expression { private readonly ReadOnlyCollectionwhen executed. /// _variables; internal RuntimeVariablesExpression(ReadOnlyCollection variables) { _variables = variables; } /// /// Gets the static type of the expression that this ///represents. /// The public sealed override Type Type { get { return typeof(IRuntimeVariables); } } ///that represents the static type of the expression. /// Returns the node type of this Expression. Extension nodes should return /// ExpressionType.Extension when overriding this method. /// ///The public sealed override ExpressionType NodeType { get { return ExpressionType.RuntimeVariables; } } ///of the expression. /// The variables or parameters to which to provide runtime access. /// public ReadOnlyCollectionVariables { get { return _variables; } } /// /// Dispatches to the specific visit method for this node type. /// protected internal override Expression Accept(ExpressionVisitor visitor) { return visitor.VisitRuntimeVariables(this); } ////// Creates a new expression that is like this one, but using the /// supplied children. If all of the children are the same, it will /// return this expression. /// /// Theproperty of the result. /// This expression if no children changed, or an expression with the updated children. public RuntimeVariablesExpression Update(IEnumerablevariables) { if (variables == Variables) { return this; } return Expression.RuntimeVariables(variables); } } public partial class Expression { /// /// Creates an instance of /// An array of. /// objects to use to populate the collection. /// An instance of public static RuntimeVariablesExpression RuntimeVariables(params ParameterExpression[] variables) { return RuntimeVariables((IEnumerablethat has the property equal to and the property set to the specified value. )variables); } /// /// Creates an instance of /// A collection of. /// objects to use to populate the collection. /// An instance of public static RuntimeVariablesExpression RuntimeVariables(IEnumerablethat has the property equal to and the property set to the specified value. variables) { ContractUtils.RequiresNotNull(variables, "variables"); var vars = variables.ToReadOnly(); for (int i = 0; i < vars.Count; i++) { Expression v = vars[i]; if (v == null) { throw new ArgumentNullException("variables[" + i + "]"); } } return new RuntimeVariablesExpression(vars); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BaseContextMenu.cs
- SmiEventSink.cs
- WorkflowRuntimeElement.cs
- WebPartMenu.cs
- ScriptReferenceBase.cs
- OrderedDictionary.cs
- EntityTypeBase.cs
- Lease.cs
- WmlTextBoxAdapter.cs
- ReadWriteObjectLock.cs
- CornerRadiusConverter.cs
- ConversionHelper.cs
- BasePropertyDescriptor.cs
- DesigntimeLicenseContext.cs
- DiscoveryRequestHandler.cs
- XmlDataSourceView.cs
- APCustomTypeDescriptor.cs
- x509utils.cs
- DictionaryEntry.cs
- GridViewDeleteEventArgs.cs
- CollectionView.cs
- HMACSHA384.cs
- TypeBuilder.cs
- DebugInfoExpression.cs
- ConfigurationSectionCollection.cs
- C14NUtil.cs
- ArrayMergeHelper.cs
- MediaContext.cs
- MaskedTextProvider.cs
- _NestedSingleAsyncResult.cs
- BrowserDefinition.cs
- TraceLog.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- DocumentViewerConstants.cs
- SafeLocalMemHandle.cs
- Span.cs
- HttpValueCollection.cs
- EventSinkActivity.cs
- WebPartManagerDesigner.cs
- XmlCharacterData.cs
- SecurityTokenSerializer.cs
- BindingGraph.cs
- MsmqIntegrationChannelFactory.cs
- ObjectQuery_EntitySqlExtensions.cs
- TreeViewHitTestInfo.cs
- MergeEnumerator.cs
- RawStylusActions.cs
- Size3DValueSerializer.cs
- ActivityExecutionContext.cs
- ConfigXmlComment.cs
- ContractValidationHelper.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- SessionEndingEventArgs.cs
- ExtenderControl.cs
- DataRelationCollection.cs
- MinMaxParagraphWidth.cs
- TrackingRecord.cs
- SoapParser.cs
- ColumnWidthChangingEvent.cs
- TextServicesHost.cs
- SettingsSavedEventArgs.cs
- EntityViewContainer.cs
- HtmlTableRow.cs
- Type.cs
- XsltSettings.cs
- JapaneseLunisolarCalendar.cs
- DocumentsTrace.cs
- XmlILStorageConverter.cs
- AnimatedTypeHelpers.cs
- assertwrapper.cs
- InkSerializer.cs
- _NetworkingPerfCounters.cs
- XmlNamedNodeMap.cs
- DropShadowBitmapEffect.cs
- MasterPage.cs
- EntityDataReader.cs
- LocalizationComments.cs
- SqlVisitor.cs
- TreeNode.cs
- Listbox.cs
- LogReserveAndAppendState.cs
- RawMouseInputReport.cs
- ToolStripSystemRenderer.cs
- ComplexPropertyEntry.cs
- CaseStatementSlot.cs
- EditorZone.cs
- TextDecoration.cs
- CheckBox.cs
- DefaultAssemblyResolver.cs
- List.cs
- TextEvent.cs
- Utility.cs
- ListContractAdapter.cs
- RegexInterpreter.cs
- DrawingGroupDrawingContext.cs
- TypeValidationEventArgs.cs
- PathParser.cs
- TemplateColumn.cs
- MessagePropertyFilter.cs
- IntellisenseTextBox.cs