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
- StringReader.cs
- WebPartChrome.cs
- HMACSHA384.cs
- VisualStyleInformation.cs
- TextEditorParagraphs.cs
- InvalidWMPVersionException.cs
- wmiprovider.cs
- ReservationNotFoundException.cs
- StateItem.cs
- ExeConfigurationFileMap.cs
- LogSwitch.cs
- ReferenceConverter.cs
- IPHostEntry.cs
- MetadataItemEmitter.cs
- HeaderUtility.cs
- ObjectRef.cs
- SqlDataSourceCache.cs
- ManagedFilter.cs
- ColorBlend.cs
- Transactions.cs
- ResizingMessageFilter.cs
- SeekableMessageNavigator.cs
- SelectedCellsChangedEventArgs.cs
- TextTabProperties.cs
- DbProviderFactoriesConfigurationHandler.cs
- PackagingUtilities.cs
- XPathAncestorQuery.cs
- InfoCardX509Validator.cs
- IISMapPath.cs
- sqlcontext.cs
- AxHost.cs
- ImageClickEventArgs.cs
- MobileSysDescriptionAttribute.cs
- SchemaSetCompiler.cs
- ServiceReference.cs
- CultureInfoConverter.cs
- CollectionBuilder.cs
- ToolStripMenuItem.cs
- nulltextnavigator.cs
- UrlPath.cs
- DataGridViewComboBoxColumn.cs
- DrawingContextFlattener.cs
- OLEDB_Enum.cs
- InputBinder.cs
- HtmlInputPassword.cs
- SHA1Managed.cs
- AnimatedTypeHelpers.cs
- TraceContext.cs
- AutomationEventArgs.cs
- ExpressionQuoter.cs
- TargetFrameworkUtil.cs
- AnnouncementSendsAsyncResult.cs
- WindowsStreamSecurityElement.cs
- CodeExporter.cs
- ProfileSettingsCollection.cs
- XmlILConstructAnalyzer.cs
- SrgsItemList.cs
- Literal.cs
- PolyQuadraticBezierSegment.cs
- OverflowException.cs
- RuntimeIdentifierPropertyAttribute.cs
- AttributeQuery.cs
- DateTimeParse.cs
- ZipIORawDataFileBlock.cs
- SqlDataRecord.cs
- DirectoryObjectSecurity.cs
- AmbientProperties.cs
- xsdvalidator.cs
- FaultContext.cs
- WindowsFormsSectionHandler.cs
- HtmlEmptyTagControlBuilder.cs
- InProcStateClientManager.cs
- TypeDelegator.cs
- GlobalProxySelection.cs
- XPathParser.cs
- StyleBamlRecordReader.cs
- CoreChannel.cs
- GridViewColumn.cs
- _HTTPDateParse.cs
- CharKeyFrameCollection.cs
- Set.cs
- XmlIterators.cs
- RangeBase.cs
- ToolBar.cs
- CodeObject.cs
- recordstate.cs
- ContextMenu.cs
- SeekStoryboard.cs
- PerformanceCounterCategory.cs
- TreeNodeCollection.cs
- XmlElementCollection.cs
- OdbcError.cs
- RegexNode.cs
- TagMapInfo.cs
- IdentityNotMappedException.cs
- ChangesetResponse.cs
- NCryptSafeHandles.cs
- SoapAttributeOverrides.cs
- DNS.cs
- InputLanguageEventArgs.cs