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
- PasswordDeriveBytes.cs
- StrongNameHelpers.cs
- TransactionContextManager.cs
- Calendar.cs
- WebPartsPersonalization.cs
- StringDictionaryEditor.cs
- UnmanagedMemoryStreamWrapper.cs
- ListControl.cs
- InternalConfigSettingsFactory.cs
- RegisteredExpandoAttribute.cs
- LineSegment.cs
- C14NUtil.cs
- ResourceSet.cs
- Helper.cs
- GACIdentityPermission.cs
- AssemblyNameProxy.cs
- BooleanConverter.cs
- GridViewColumnHeader.cs
- PropertyCollection.cs
- PropertyInfoSet.cs
- Panel.cs
- ToolStripGrip.cs
- ParenExpr.cs
- FigureParaClient.cs
- LinqDataSourceDisposeEventArgs.cs
- WebPartMenuStyle.cs
- SystemIPGlobalStatistics.cs
- TabRenderer.cs
- ZipIOExtraFieldZip64Element.cs
- UInt16Storage.cs
- CodeCompileUnit.cs
- FastEncoderWindow.cs
- Peer.cs
- ExpressionQuoter.cs
- TextServicesContext.cs
- ParseNumbers.cs
- WebPartDeleteVerb.cs
- XmlSchemaImporter.cs
- XsdCachingReader.cs
- ValidateNames.cs
- GridViewCommandEventArgs.cs
- TypedReference.cs
- ButtonChrome.cs
- infer.cs
- TrackingStringDictionary.cs
- AutomationPatternInfo.cs
- InkCanvasInnerCanvas.cs
- MSHTMLHost.cs
- SqlDeflator.cs
- EntityDataSourceUtil.cs
- WebPartsPersonalization.cs
- SpellerInterop.cs
- ChannelSinkStacks.cs
- _UncName.cs
- ImageBrush.cs
- RightsManagementPermission.cs
- CodeMemberMethod.cs
- FixedSOMSemanticBox.cs
- QilStrConcatenator.cs
- ListCollectionView.cs
- Roles.cs
- BackgroundWorker.cs
- XmlNodeList.cs
- ComplexLine.cs
- SchemaImporterExtensionElement.cs
- TemplatedWizardStep.cs
- UserPreferenceChangingEventArgs.cs
- DocumentPageViewAutomationPeer.cs
- HttpChannelFactory.cs
- ItemsControlAutomationPeer.cs
- OleTxTransaction.cs
- DateTimeFormat.cs
- DBCSCodePageEncoding.cs
- ContentValidator.cs
- Property.cs
- ListItemConverter.cs
- StatusBarAutomationPeer.cs
- ListBoxAutomationPeer.cs
- SafeRightsManagementHandle.cs
- wgx_render.cs
- DataGridViewRowPostPaintEventArgs.cs
- Vector3DCollectionConverter.cs
- ItemCollection.cs
- WindowsPen.cs
- storepermission.cs
- HybridDictionary.cs
- StringValidatorAttribute.cs
- ImportFileRequest.cs
- Parser.cs
- ProvideValueServiceProvider.cs
- HealthMonitoringSectionHelper.cs
- GradientBrush.cs
- CssTextWriter.cs
- FlowDocumentReader.cs
- TraceHandler.cs
- IdleTimeoutMonitor.cs
- KnownBoxes.cs
- MemberBinding.cs
- StylusCollection.cs
- UdpDiscoveryMessageFilter.cs