Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Compiler / BoundConstants.cs / 1305376 / BoundConstants.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.Diagnostics; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Dynamic.Utils; #if SILVERLIGHT using System.Core; #endif namespace System.Linq.Expressions.Compiler { ////// This type tracks "runtime" constants--live objects that appear in /// ConstantExpression nodes and must be bound to the delegate. /// internal sealed class BoundConstants { ////// Constants can emit themselves as different types /// For caching purposes, we need to treat each distinct Type as a /// seperate thing to cache. (If we have to cast it on the way out, it /// ends up using a JIT temp and defeats the purpose of caching the /// value in a local) /// private struct TypedConstant : IEquatable{ internal readonly object Value; internal readonly Type Type; internal TypedConstant(object value, Type type) { Value = value; Type = type; } public override int GetHashCode() { return RuntimeHelpers.GetHashCode(Value) ^ Type.GetHashCode(); } public bool Equals(TypedConstant other) { return object.ReferenceEquals(Value, other.Value) && Type.Equals(other.Type); } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2231:OverloadOperatorEqualsOnOverridingValueTypeEquals")] public override bool Equals(object obj) { return (obj is TypedConstant) && Equals((TypedConstant)obj); } } /// /// The list of constants in the order they appear in the constant array /// private readonly List
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PropertyInformationCollection.cs
- PreservationFileWriter.cs
- BamlTreeUpdater.cs
- Lazy.cs
- _StreamFramer.cs
- ContentPresenter.cs
- ipaddressinformationcollection.cs
- SQLBoolean.cs
- WebPartDisplayModeCancelEventArgs.cs
- ContextStaticAttribute.cs
- DictionaryBase.cs
- StreamGeometry.cs
- ListItemConverter.cs
- XamlBuildTaskServices.cs
- SchemaImporterExtensionElementCollection.cs
- DecimalAnimation.cs
- MarshalDirectiveException.cs
- Camera.cs
- CodeDirectionExpression.cs
- LinkedList.cs
- DebugHandleTracker.cs
- StyleBamlRecordReader.cs
- DataList.cs
- RectangleGeometry.cs
- RetrieveVirtualItemEventArgs.cs
- DataViewSettingCollection.cs
- ResourceContainerWrapper.cs
- Bezier.cs
- AsymmetricAlgorithm.cs
- XmlResolver.cs
- DesignTimeParseData.cs
- MemberInfoSerializationHolder.cs
- PrimitiveCodeDomSerializer.cs
- HttpWrapper.cs
- SimpleTypeResolver.cs
- FontUnit.cs
- XPathArrayIterator.cs
- SelectionRangeConverter.cs
- ChtmlLinkAdapter.cs
- SByteStorage.cs
- DesignerLinkAdapter.cs
- ICspAsymmetricAlgorithm.cs
- ActionNotSupportedException.cs
- ServiceModelConfigurationSectionCollection.cs
- DeploymentSection.cs
- SafeNativeMethods.cs
- DeadCharTextComposition.cs
- HttpApplicationFactory.cs
- RegularExpressionValidator.cs
- BulletChrome.cs
- XamlWriter.cs
- CallTemplateAction.cs
- CqlQuery.cs
- WebPageTraceListener.cs
- ScrollChrome.cs
- ControlBuilder.cs
- DesignerValidatorAdapter.cs
- DataBindingExpressionBuilder.cs
- DoubleLink.cs
- ClientSideProviderDescription.cs
- ClientRuntimeConfig.cs
- tibetanshape.cs
- recordstatescratchpad.cs
- BitmapPalettes.cs
- sitestring.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- RichTextBox.cs
- ReachUIElementCollectionSerializer.cs
- Message.cs
- WebControlAdapter.cs
- HostedNamedPipeTransportManager.cs
- SafeNativeMemoryHandle.cs
- EditorAttribute.cs
- XPathDocumentIterator.cs
- TCPListener.cs
- TextModifier.cs
- contentDescriptor.cs
- DatagridviewDisplayedBandsData.cs
- ApplicationDirectory.cs
- EntityDataSourceColumn.cs
- _HTTPDateParse.cs
- Helpers.cs
- OleDbRowUpdatedEvent.cs
- SqlParameter.cs
- InternalBufferOverflowException.cs
- FlowDocumentReader.cs
- HttpApplication.cs
- BitmapEffectOutputConnector.cs
- AnnotationComponentChooser.cs
- ByteAnimation.cs
- Timeline.cs
- TransactionOptions.cs
- UidManager.cs
- HtmlElementErrorEventArgs.cs
- Menu.cs
- Math.cs
- DatePickerAutomationPeer.cs
- DrawingImage.cs
- DataControlPagerLinkButton.cs
- DbException.cs