Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / Divide.cs / 1305376 / Divide.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Expressions
{
using System.Activities;
using System.Activities.Statements;
using System.Linq.Expressions;
using System.Activities.Validation;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime;
public sealed class Divide : CodeActivity
{
//Lock is not needed for operationFunction here. The reason is that delegates for a given Divide are the same.
//It's possible that 2 threads are assigning the operationFucntion at the same time. But it's okay because the compiled codes are the same.
static Func operationFunction;
[RequiredArgument]
[DefaultValue(null)]
public InArgument Left
{
get;
set;
}
[RequiredArgument]
[DefaultValue(null)]
public InArgument Right
{
get;
set;
}
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
BinaryExpressionHelper.OnGetArguments(metadata, this.Left, this.Right);
if (operationFunction == null)
{
ValidationError validationError;
if (!BinaryExpressionHelper.TryGenerateLinqDelegate(ExpressionType.Divide, out operationFunction, out validationError))
{
metadata.AddValidationError(validationError);
}
}
}
protected override TResult Execute(CodeActivityContext context)
{
Fx.Assert(operationFunction != null, "OperationFunction must exist.");
TLeft leftValue = this.Left.Get(context);
TRight rightValue = this.Right.Get(context);
return operationFunction(leftValue, rightValue);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueuePropertyVariants.cs
- SecurityHelper.cs
- Rect.cs
- EditorResources.cs
- EdgeModeValidation.cs
- GeneralTransformCollection.cs
- CatalogPart.cs
- ComplexTypeEmitter.cs
- BuilderPropertyEntry.cs
- LocationUpdates.cs
- InfiniteTimeSpanConverter.cs
- ParsedAttributeCollection.cs
- AppearanceEditorPart.cs
- XsdCachingReader.cs
- ComponentDispatcherThread.cs
- XmlWriter.cs
- ValidationError.cs
- ClientBuildManagerCallback.cs
- TextEmbeddedObject.cs
- Utils.cs
- DataGridBoolColumn.cs
- UiaCoreProviderApi.cs
- Baml2006ReaderFrame.cs
- ToolBarButtonClickEvent.cs
- SetterBase.cs
- ObjectTypeMapping.cs
- EventProperty.cs
- WebPartConnectionsCloseVerb.cs
- AuthenticationException.cs
- VectorAnimation.cs
- PathSegmentCollection.cs
- ScrollData.cs
- SupportsEventValidationAttribute.cs
- ToolStripComboBox.cs
- EncoderNLS.cs
- BehaviorService.cs
- GlyphRunDrawing.cs
- MappingModelBuildProvider.cs
- SR.Designer.cs
- PrimitiveDataContract.cs
- Keyboard.cs
- IntegerValidatorAttribute.cs
- ClientOptions.cs
- SchemaImporterExtensionElement.cs
- ArgumentNullException.cs
- FontStretch.cs
- EffectiveValueEntry.cs
- PrivateFontCollection.cs
- Sql8ExpressionRewriter.cs
- HostingEnvironmentException.cs
- FixedSOMPageElement.cs
- CodeGroup.cs
- HtmlControlPersistable.cs
- SecureEnvironment.cs
- ScriptReferenceEventArgs.cs
- RuleInfoComparer.cs
- MatrixTransform3D.cs
- AQNBuilder.cs
- BindingCollection.cs
- FileLogRecordStream.cs
- DifferencingCollection.cs
- WebPartUserCapability.cs
- XmlSchemaAppInfo.cs
- BridgeDataReader.cs
- InputBinding.cs
- AttributeParameterInfo.cs
- DataGridViewRowsAddedEventArgs.cs
- TcpTransportElement.cs
- Material.cs
- NavigationEventArgs.cs
- ApplyImportsAction.cs
- TransformDescriptor.cs
- ServiceDesigner.cs
- autovalidator.cs
- ViewBox.cs
- RectAnimation.cs
- Soap11ServerProtocol.cs
- ApplicationTrust.cs
- ActivityExecutorDelegateInfo.cs
- InputMethod.cs
- AutomationIdentifier.cs
- ErrorFormatter.cs
- ObjectNavigationPropertyMapping.cs
- DateTimeConverter2.cs
- ZipIOLocalFileHeader.cs
- ControlPersister.cs
- Label.cs
- HwndTarget.cs
- WebPartMovingEventArgs.cs
- BaseDataList.cs
- AQNBuilder.cs
- EnumBuilder.cs
- CodeTypeDeclarationCollection.cs
- HTMLTagNameToTypeMapper.cs
- UICuesEvent.cs
- HwndAppCommandInputProvider.cs
- SupportsEventValidationAttribute.cs
- WebPartDescription.cs
- UpdateException.cs
- _TLSstream.cs