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
- XsltSettings.cs
- AbstractSvcMapFileLoader.cs
- BaseValidator.cs
- ExtensionMethods.cs
- SemanticValue.cs
- WindowsContainer.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- SafeEventLogReadHandle.cs
- PathGradientBrush.cs
- BasicDesignerLoader.cs
- ApplicationServicesHostFactory.cs
- SqlDependencyUtils.cs
- Misc.cs
- KnownTypesHelper.cs
- DefaultExpression.cs
- DataGridViewDataErrorEventArgs.cs
- UserPersonalizationStateInfo.cs
- PerformanceCounterLib.cs
- SafeNativeMethods.cs
- DtdParser.cs
- AdRotator.cs
- EntityViewGenerationAttribute.cs
- XmlValueConverter.cs
- ServiceHostFactory.cs
- ImageFormat.cs
- Utils.cs
- HuffmanTree.cs
- EnterpriseServicesHelper.cs
- TextElementAutomationPeer.cs
- StandardCommandToolStripMenuItem.cs
- ExpressionParser.cs
- ProgressBarAutomationPeer.cs
- ResolveNameEventArgs.cs
- FontInfo.cs
- ParameterCollectionEditorForm.cs
- FloatSumAggregationOperator.cs
- PermissionSetEnumerator.cs
- RectangleConverter.cs
- SingleAnimationBase.cs
- UnicastIPAddressInformationCollection.cs
- RightsManagementEncryptedStream.cs
- Timer.cs
- PresentationUIStyleResources.cs
- ExeConfigurationFileMap.cs
- PrinterUnitConvert.cs
- BlockCollection.cs
- XPathNodeHelper.cs
- WebPartConnectionsConnectVerb.cs
- ConnectionPointCookie.cs
- MessageDecoder.cs
- Util.cs
- AsyncCompletedEventArgs.cs
- FocusTracker.cs
- ConnectionInterfaceCollection.cs
- DependencyObjectValidator.cs
- LogWriteRestartAreaAsyncResult.cs
- Material.cs
- CodeExpressionCollection.cs
- NamespaceEmitter.cs
- IChannel.cs
- SRDisplayNameAttribute.cs
- LocatorGroup.cs
- Module.cs
- TopClause.cs
- RemoteWebConfigurationHostServer.cs
- HttpCacheVary.cs
- InternalPermissions.cs
- BeginSelectCardRequest.cs
- OrderedHashRepartitionStream.cs
- WizardStepBase.cs
- XhtmlConformanceSection.cs
- MatrixStack.cs
- TransactionsSectionGroup.cs
- GridEntryCollection.cs
- PropertyDescriptorComparer.cs
- OdbcConnectionFactory.cs
- _emptywebproxy.cs
- PrinterSettings.cs
- _DomainName.cs
- InvalidBodyAccessException.cs
- OleDbPropertySetGuid.cs
- Clipboard.cs
- COMException.cs
- RoutingConfiguration.cs
- MemberPathMap.cs
- ModelPerspective.cs
- HttpModuleAction.cs
- TokenBasedSet.cs
- SigningCredentials.cs
- SpellerInterop.cs
- SiteMapDataSourceDesigner.cs
- DetailsView.cs
- Crypto.cs
- GlyphRunDrawing.cs
- SamlSubjectStatement.cs
- VisualStyleElement.cs
- EditBehavior.cs
- CoTaskMemHandle.cs
- ProviderConnectionPointCollection.cs
- DataServiceProviderWrapper.cs