Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ChangeBlockUndoRecord.cs
- ReliabilityContractAttribute.cs
- EntityWrapper.cs
- ListBox.cs
- DetailsViewDeletedEventArgs.cs
- StringResourceManager.cs
- DesignerDataView.cs
- LinkButton.cs
- XPathSingletonIterator.cs
- IntPtr.cs
- DataGridRowClipboardEventArgs.cs
- Property.cs
- BindingMemberInfo.cs
- ConnectionPoint.cs
- ListControl.cs
- IdentityReference.cs
- ObjectStateManager.cs
- DataControlField.cs
- TextElementEditingBehaviorAttribute.cs
- DebugHandleTracker.cs
- MemoryRecordBuffer.cs
- LambdaCompiler.Logical.cs
- SqlTopReducer.cs
- RightsManagementInformation.cs
- BridgeDataReader.cs
- WebProxyScriptElement.cs
- RegexCompilationInfo.cs
- Soap11ServerProtocol.cs
- ADRoleFactoryConfiguration.cs
- PassportAuthenticationEventArgs.cs
- RegexReplacement.cs
- Thickness.cs
- NotifyIcon.cs
- HttpServerUtilityBase.cs
- BitmapInitialize.cs
- CheckBoxRenderer.cs
- DeclarationUpdate.cs
- SecurityRuntime.cs
- AsymmetricSignatureDeformatter.cs
- DataGridViewCellLinkedList.cs
- HtmlLinkAdapter.cs
- DurationConverter.cs
- SemaphoreFullException.cs
- SnapLine.cs
- AnnotationStore.cs
- MsmqReceiveHelper.cs
- KnownTypeDataContractResolver.cs
- Symbol.cs
- SmiEventStream.cs
- CombinedGeometry.cs
- ZipIOFileItemStream.cs
- ToolStripMenuItem.cs
- Duration.cs
- BinaryMethodMessage.cs
- SoapAttributes.cs
- SocketInformation.cs
- SiteMembershipCondition.cs
- CodeStatementCollection.cs
- ListChangedEventArgs.cs
- PersonalizablePropertyEntry.cs
- AddingNewEventArgs.cs
- EncodedStreamFactory.cs
- SizeF.cs
- ToolStripSeparator.cs
- BindingCompleteEventArgs.cs
- HttpCacheVaryByContentEncodings.cs
- figurelengthconverter.cs
- VerificationAttribute.cs
- InstancePersistenceEvent.cs
- Part.cs
- DataViewManagerListItemTypeDescriptor.cs
- MasterPageParser.cs
- CustomAttributeFormatException.cs
- TransactionsSectionGroup.cs
- XmlReturnReader.cs
- GenerateHelper.cs
- QueryOperationResponseOfT.cs
- ExplicitDiscriminatorMap.cs
- sitestring.cs
- UInt16Storage.cs
- DefaultAsyncDataDispatcher.cs
- Scene3D.cs
- EventLogPermissionEntry.cs
- ContextDataSourceView.cs
- CacheEntry.cs
- WebUtil.cs
- SecurityAccessDeniedException.cs
- MenuItem.cs
- TypeDescriptor.cs
- SafeSecurityHandles.cs
- ProvideValueServiceProvider.cs
- SrgsText.cs
- Light.cs
- Int64AnimationBase.cs
- StickyNoteContentControl.cs
- VisualBrush.cs
- StringStorage.cs
- SupportsEventValidationAttribute.cs
- MonthChangedEventArgs.cs
- XmlSchemaException.cs