Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / UnaryOperationBinder.cs / 1305376 / UnaryOperationBinder.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.Dynamic.Utils; using System.Linq.Expressions; namespace System.Dynamic { ////// Represents the unary dynamic operation at the call site, providing the binding semantic and the details about the operation. /// public abstract class UnaryOperationBinder : DynamicMetaObjectBinder { private ExpressionType _operation; ////// Initializes a new instance of the /// The unary operation kind. protected UnaryOperationBinder(ExpressionType operation) { ContractUtils.Requires(OperationIsValid(operation), "operation"); _operation = operation; } ///class. /// /// The result type of the operation. /// public override sealed Type ReturnType { get { switch(_operation) { case ExpressionType.IsFalse: case ExpressionType.IsTrue: return typeof(bool); default: return typeof(object); } } } ////// The unary operation kind. /// public ExpressionType Operation { get { return _operation; } } ////// Performs the binding of the unary dynamic operation if the target dynamic object cannot bind. /// /// The target of the dynamic unary operation. ///The public DynamicMetaObject FallbackUnaryOperation(DynamicMetaObject target) { return FallbackUnaryOperation(target, null); } ///representing the result of the binding. /// Performs the binding of the unary dynamic operation if the target dynamic object cannot bind. /// /// The target of the dynamic unary operation. /// The binding result in case the binding fails, or null. ///The public abstract DynamicMetaObject FallbackUnaryOperation(DynamicMetaObject target, DynamicMetaObject errorSuggestion); ///representing the result of the binding. /// Performs the binding of the dynamic unary operation. /// /// The target of the dynamic operation. /// An array of arguments of the dynamic operation. ///The public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.Requires(args == null || args.Length == 0, "args"); return target.BindUnaryOperation(this); } // this is a standard DynamicMetaObjectBinder internal override sealed bool IsStandardBinder { get { return true; } } internal static bool OperationIsValid(ExpressionType operation) { switch (operation) { #region Generated Unary Operation Binder Validator // *** BEGIN GENERATED CODE *** // generated by function: gen_unop_validator from: generate_tree.py case ExpressionType.Negate: case ExpressionType.UnaryPlus: case ExpressionType.Not: case ExpressionType.Decrement: case ExpressionType.Increment: case ExpressionType.OnesComplement: case ExpressionType.IsTrue: case ExpressionType.IsFalse: // *** END GENERATED CODE *** #endregion case ExpressionType.Extension: return true; default: return false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.representing the result of the binding.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProcessThreadCollection.cs
- RightsManagementSuppressedStream.cs
- AppDomainManager.cs
- PriorityQueue.cs
- DataPointer.cs
- XmlSerializerAssemblyAttribute.cs
- DnsPermission.cs
- DragDropManager.cs
- ImageUrlEditor.cs
- SchemaEntity.cs
- Rules.cs
- SafeRightsManagementPubHandle.cs
- ViewStateException.cs
- SimpleRecyclingCache.cs
- SingleQueryOperator.cs
- ExecutionEngineException.cs
- FlowLayoutPanel.cs
- ServicePrincipalNameElement.cs
- Converter.cs
- SapiRecognizer.cs
- DataControlImageButton.cs
- ToolStripRendererSwitcher.cs
- Accessible.cs
- SelectionManager.cs
- TrackingServices.cs
- AssemblyGen.cs
- OrderPreservingMergeHelper.cs
- BaseHashHelper.cs
- MultipartIdentifier.cs
- EntityWithKeyStrategy.cs
- HwndHost.cs
- FunctionQuery.cs
- GlyphShapingProperties.cs
- WizardPanelChangingEventArgs.cs
- LogPolicy.cs
- OperatingSystemVersionCheck.cs
- TaskbarItemInfo.cs
- ImageCreator.cs
- XPathChildIterator.cs
- FunctionQuery.cs
- RectAnimationBase.cs
- HyperLinkStyle.cs
- AutoGeneratedField.cs
- ResourceManager.cs
- DataGridViewRowHeaderCell.cs
- RequestCacheManager.cs
- InputElement.cs
- UIPermission.cs
- ManagementOptions.cs
- CapabilitiesState.cs
- SessionSwitchEventArgs.cs
- activationcontext.cs
- NativeMethods.cs
- PageStatePersister.cs
- Validator.cs
- QueryConverter.cs
- OletxEnlistment.cs
- SplitterCancelEvent.cs
- EpmContentSerializerBase.cs
- DialogResultConverter.cs
- WebPartCatalogAddVerb.cs
- ComponentChangedEvent.cs
- EventLogPermissionEntryCollection.cs
- FlowNode.cs
- SoapHeader.cs
- DefinitionUpdate.cs
- EntityContainerAssociationSetEnd.cs
- CapabilitiesUse.cs
- DbConnectionPoolIdentity.cs
- AmbientLight.cs
- XamlTypeMapperSchemaContext.cs
- PictureBox.cs
- SqlRetyper.cs
- SimpleTextLine.cs
- DataGridViewLinkCell.cs
- DataGridViewTextBoxColumn.cs
- BackStopAuthenticationModule.cs
- PageWrapper.cs
- Slider.cs
- AbstractExpressions.cs
- WinCategoryAttribute.cs
- CharacterBuffer.cs
- WebEventTraceProvider.cs
- LoginUtil.cs
- _LocalDataStore.cs
- ObjectFullSpanRewriter.cs
- XmlHelper.cs
- MonikerUtility.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- CultureMapper.cs
- ConnectionManager.cs
- BaseTreeIterator.cs
- DataGridColumnFloatingHeader.cs
- DocumentViewerHelper.cs
- LabelDesigner.cs
- IncrementalCompileAnalyzer.cs
- Point3DAnimation.cs
- WeakHashtable.cs
- AsymmetricAlgorithm.cs
- PostBackTrigger.cs