Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Ast / SwitchCase.cs / 1305376 / SwitchCase.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.Collections.ObjectModel; using System.Diagnostics; using System.Dynamic.Utils; namespace System.Linq.Expressions { ////// Represents one case of a #if !SILVERLIGHT [DebuggerTypeProxy(typeof(Expression.SwitchCaseProxy))] #endif public sealed class SwitchCase { private readonly ReadOnlyCollection. /// _testValues; private readonly Expression _body; internal SwitchCase(Expression body, ReadOnlyCollection testValues) { _body = body; _testValues = testValues; } /// /// Gets the values of this case. This case is selected for execution when the public ReadOnlyCollectionmatches any of these values. /// TestValues { get { return _testValues; } } /// /// Gets the body of this case. /// public Expression Body { get { return _body; } } ////// Returns a ///that represents the current . /// A public override string ToString() { return ExpressionStringBuilder.SwitchCaseToString(this); } ///that represents the current . /// Creates a new expression that is like this one, but using the /// supplied children. If all of the children are the same, it will /// return this expression. /// /// Theproperty of the result. /// The property of the result. /// This expression if no children changed, or an expression with the updated children. public SwitchCase Update(IEnumerabletestValues, Expression body) { if (testValues == TestValues && body == Body) { return this; } return Expression.SwitchCase(body, testValues); } } public partial class Expression { /// /// Creates a /// The body of the case. /// The test values of the case. ///SwitchCase for use in a. /// The created public static SwitchCase SwitchCase(Expression body, params Expression[] testValues) { return SwitchCase(body, (IEnumerableSwitchCase .)testValues); } /// /// Creates a /// The body of the case. /// The test values of the case. ///SwitchCase for use in a. /// The created public static SwitchCase SwitchCase(Expression body, IEnumerableSwitchCase .testValues) { RequiresCanRead(body, "body"); var values = testValues.ToReadOnly(); RequiresCanRead(values, "testValues"); ContractUtils.RequiresNotEmpty(values, "testValues"); return new SwitchCase(body, values); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /* **************************************************************************** * * 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.Collections.ObjectModel; using System.Diagnostics; using System.Dynamic.Utils; namespace System.Linq.Expressions { /// /// Represents one case of a #if !SILVERLIGHT [DebuggerTypeProxy(typeof(Expression.SwitchCaseProxy))] #endif public sealed class SwitchCase { private readonly ReadOnlyCollection. /// _testValues; private readonly Expression _body; internal SwitchCase(Expression body, ReadOnlyCollection testValues) { _body = body; _testValues = testValues; } /// /// Gets the values of this case. This case is selected for execution when the public ReadOnlyCollectionmatches any of these values. /// TestValues { get { return _testValues; } } /// /// Gets the body of this case. /// public Expression Body { get { return _body; } } ////// Returns a ///that represents the current . /// A public override string ToString() { return ExpressionStringBuilder.SwitchCaseToString(this); } ///that represents the current . /// Creates a new expression that is like this one, but using the /// supplied children. If all of the children are the same, it will /// return this expression. /// /// Theproperty of the result. /// The property of the result. /// This expression if no children changed, or an expression with the updated children. public SwitchCase Update(IEnumerabletestValues, Expression body) { if (testValues == TestValues && body == Body) { return this; } return Expression.SwitchCase(body, testValues); } } public partial class Expression { /// /// Creates a /// The body of the case. /// The test values of the case. ///SwitchCase for use in a. /// The created public static SwitchCase SwitchCase(Expression body, params Expression[] testValues) { return SwitchCase(body, (IEnumerableSwitchCase .)testValues); } /// /// Creates a /// The body of the case. /// The test values of the case. ///SwitchCase for use in a. /// The created public static SwitchCase SwitchCase(Expression body, IEnumerableSwitchCase .testValues) { RequiresCanRead(body, "body"); var values = testValues.ToReadOnly(); RequiresCanRead(values, "testValues"); ContractUtils.RequiresNotEmpty(values, "testValues"); return new SwitchCase(body, values); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Dictionary.cs
- BeginEvent.cs
- NGCSerializerAsync.cs
- SiteMap.cs
- ADConnectionHelper.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- StorageEntitySetMapping.cs
- TemplatedAdorner.cs
- UrlAuthFailedErrorFormatter.cs
- CompareInfo.cs
- SelfIssuedSamlTokenFactory.cs
- SafeNativeMethods.cs
- XmlAttribute.cs
- UniqueIdentifierService.cs
- Query.cs
- LongValidatorAttribute.cs
- DataBinder.cs
- TextStore.cs
- HttpEncoder.cs
- HostProtectionPermission.cs
- XmlSerializerVersionAttribute.cs
- OutputCacheProfileCollection.cs
- CompositionTarget.cs
- ExecutionEngineException.cs
- PageCatalogPart.cs
- LZCodec.cs
- DrawingAttributesDefaultValueFactory.cs
- CodeCommentStatementCollection.cs
- TransformerInfo.cs
- HelpKeywordAttribute.cs
- MembershipUser.cs
- BaseAddressPrefixFilterElementCollection.cs
- TransformGroup.cs
- Region.cs
- GradientStopCollection.cs
- AxHost.cs
- PrePrepareMethodAttribute.cs
- ExpressionBuilder.cs
- ConnectionsZoneAutoFormat.cs
- Multiply.cs
- OutputScope.cs
- WebBrowserBase.cs
- WorkflowWebHostingModule.cs
- RoleManagerModule.cs
- TypeSystemHelpers.cs
- UndoManager.cs
- StaticDataManager.cs
- DataGridViewUtilities.cs
- WebPart.cs
- TitleStyle.cs
- FormViewActionList.cs
- DependencyPropertyConverter.cs
- RtType.cs
- HopperCache.cs
- DiscoveryClientRequestChannel.cs
- WebPartMinimizeVerb.cs
- DesignerAutoFormatCollection.cs
- EventLogPermissionHolder.cs
- DecimalAnimationBase.cs
- VerificationException.cs
- ProxyWebPartManager.cs
- AssemblyHash.cs
- HtmlUtf8RawTextWriter.cs
- SqlFactory.cs
- CommandConverter.cs
- Roles.cs
- MultiDataTrigger.cs
- FormatPage.cs
- OleDbRowUpdatedEvent.cs
- TypeViewSchema.cs
- ScriptComponentDescriptor.cs
- SessionStateContainer.cs
- PartialCachingAttribute.cs
- LongValidatorAttribute.cs
- SQLInt16.cs
- diagnosticsswitches.cs
- LeaseManager.cs
- CodePageUtils.cs
- PtsHost.cs
- Geometry.cs
- HttpResponseHeader.cs
- FixedTextSelectionProcessor.cs
- Component.cs
- WebPartConnectionsEventArgs.cs
- SubqueryRules.cs
- TextBox.cs
- sqlser.cs
- ScriptModule.cs
- Types.cs
- WebBrowserNavigatedEventHandler.cs
- GroupBoxRenderer.cs
- DataGridViewCellMouseEventArgs.cs
- FixedMaxHeap.cs
- MemoryStream.cs
- WebPartHeaderCloseVerb.cs
- OperationInfoBase.cs
- FacetValueContainer.cs
- METAHEADER.cs
- DependsOnAttribute.cs
- cryptoapiTransform.cs