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
- WmpBitmapEncoder.cs
- _NegoState.cs
- MarkerProperties.cs
- XmlReflectionMember.cs
- EntityDataSourceWizardForm.cs
- WorkflowRuntimeServiceElementCollection.cs
- ExtensionQuery.cs
- TreeChangeInfo.cs
- ITextView.cs
- BinHexDecoder.cs
- sqlstateclientmanager.cs
- CultureSpecificStringDictionary.cs
- NameValueConfigurationCollection.cs
- ResXBuildProvider.cs
- Encoder.cs
- ChildDocumentBlock.cs
- RotationValidation.cs
- CustomAttributeFormatException.cs
- DataGridToolTip.cs
- TraceLevelStore.cs
- BrowserCapabilitiesCodeGenerator.cs
- WindowsTitleBar.cs
- IgnoreFileBuildProvider.cs
- ClientScriptManagerWrapper.cs
- Point3D.cs
- FullTextBreakpoint.cs
- SubstitutionList.cs
- ResourceDictionaryCollection.cs
- HtmlInputHidden.cs
- SignatureHelper.cs
- ViewStateException.cs
- RoutedCommand.cs
- DataBindingHandlerAttribute.cs
- ContextMarshalException.cs
- TextDecoration.cs
- TemplatedAdorner.cs
- UpdateManifestForBrowserApplication.cs
- LinqDataSourceStatusEventArgs.cs
- DrawingBrush.cs
- QuaternionKeyFrameCollection.cs
- BitmapEncoder.cs
- XmlSchemaValidator.cs
- SHA384CryptoServiceProvider.cs
- XmlDataCollection.cs
- TemplateContent.cs
- LabelLiteral.cs
- BamlBinaryWriter.cs
- PropertyGridView.cs
- PrivateFontCollection.cs
- Parameter.cs
- SQlBooleanStorage.cs
- XmlDataProvider.cs
- EncryptedKey.cs
- ProviderManager.cs
- mansign.cs
- WindowsIPAddress.cs
- XmlSchemaSimpleTypeList.cs
- QuotaExceededException.cs
- OleDbCommandBuilder.cs
- ApplicationActivator.cs
- StaticDataManager.cs
- StateMachineDesignerPaint.cs
- Literal.cs
- RuntimeConfig.cs
- Style.cs
- WebRequest.cs
- DataGridViewCellStyleConverter.cs
- DesignerForm.cs
- DataSourceControl.cs
- DtrList.cs
- MsmqIntegrationMessageProperty.cs
- DataSourceXmlSubItemAttribute.cs
- Subtract.cs
- URLAttribute.cs
- CustomErrorsSection.cs
- ObjectKeyFrameCollection.cs
- Marshal.cs
- GridViewRow.cs
- DataTableMapping.cs
- MenuAutomationPeer.cs
- StoragePropertyMapping.cs
- RemotingException.cs
- MdiWindowListItemConverter.cs
- OleDbCommandBuilder.cs
- ConditionBrowserDialog.cs
- SrgsRule.cs
- OdbcFactory.cs
- filewebresponse.cs
- SafeNativeMethods.cs
- SqlUDTStorage.cs
- CommandExpr.cs
- Preprocessor.cs
- TextParaLineResult.cs
- BindingSource.cs
- bidPrivateBase.cs
- CipherData.cs
- Group.cs
- TypefaceCollection.cs
- SymbolResolver.cs
- ViewRendering.cs