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
- MaterialGroup.cs
- SortDescription.cs
- TableAutomationPeer.cs
- DocumentViewerAutomationPeer.cs
- Part.cs
- SystemShuttingDownException.cs
- CatalogPartCollection.cs
- PriorityQueue.cs
- DispatcherOperation.cs
- ProcessModelSection.cs
- DependencyObjectPropertyDescriptor.cs
- VBIdentifierTrimConverter.cs
- ComponentRenameEvent.cs
- Vector3D.cs
- ExpressionBuilder.cs
- UnsafeNativeMethods.cs
- ObjectNavigationPropertyMapping.cs
- URIFormatException.cs
- OleDbCommandBuilder.cs
- ControlUtil.cs
- BlockUIContainer.cs
- RtfToken.cs
- DataSourceExpressionCollection.cs
- TimeSpanValidatorAttribute.cs
- ServerIdentity.cs
- Tile.cs
- AppLevelCompilationSectionCache.cs
- DataGridViewColumn.cs
- EdmType.cs
- XmlSchemaDocumentation.cs
- ProfilePropertySettings.cs
- Geometry.cs
- Logging.cs
- LogPolicy.cs
- Schedule.cs
- EntityDataSourceWrapper.cs
- Column.cs
- StringDictionary.cs
- EntityDataReader.cs
- WinInet.cs
- JsonObjectDataContract.cs
- Constants.cs
- BaseTreeIterator.cs
- PhysicalFontFamily.cs
- Gdiplus.cs
- PreviewPageInfo.cs
- GcHandle.cs
- DataGridPagerStyle.cs
- DbProviderServices.cs
- EasingKeyFrames.cs
- IndentTextWriter.cs
- OracleParameterCollection.cs
- _ListenerResponseStream.cs
- mediaeventargs.cs
- DataPointer.cs
- XPathDocumentBuilder.cs
- WindowsClientElement.cs
- _CacheStreams.cs
- XmlSchemaSubstitutionGroup.cs
- SerializerWriterEventHandlers.cs
- MimeReflector.cs
- DefaultTextStore.cs
- HoistedLocals.cs
- ExtendLockCommand.cs
- InternalBufferOverflowException.cs
- CompilerTypeWithParams.cs
- Compiler.cs
- HMACMD5.cs
- ToolStripSeparatorRenderEventArgs.cs
- PermissionSet.cs
- ResumeStoryboard.cs
- WindowsStatusBar.cs
- BoundColumn.cs
- PropertyDescriptorGridEntry.cs
- MonitorWrapper.cs
- ConstraintCollection.cs
- DropDownHolder.cs
- TextEffectResolver.cs
- WebBrowserSiteBase.cs
- IndexerNameAttribute.cs
- SqlServices.cs
- SchemaCollectionCompiler.cs
- DataBoundControl.cs
- DataRowComparer.cs
- HttpProfileGroupBase.cs
- HyperlinkAutomationPeer.cs
- SynchronizationLockException.cs
- PrintingPermission.cs
- RegexReplacement.cs
- SystemIPInterfaceStatistics.cs
- Page.cs
- MemberAccessException.cs
- DataGridViewColumnHeaderCell.cs
- DataSourceXmlSubItemAttribute.cs
- SafeHandle.cs
- DataPagerField.cs
- ArrayWithOffset.cs
- GridLengthConverter.cs
- TargetException.cs
- PolyBezierSegment.cs