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
- HeaderedItemsControl.cs
- SemanticKeyElement.cs
- SafeMILHandle.cs
- ActivityValidator.cs
- CompositeCollection.cs
- ValidatedControlConverter.cs
- HyperLinkColumn.cs
- TypeGeneratedEventArgs.cs
- VirtualDirectoryMapping.cs
- PackagingUtilities.cs
- EventToken.cs
- TextSelectionProcessor.cs
- ColumnHeaderConverter.cs
- MediaEntryAttribute.cs
- ImageListUtils.cs
- ViewgenGatekeeper.cs
- ThousandthOfEmRealPoints.cs
- QueueAccessMode.cs
- OleDbReferenceCollection.cs
- ModifierKeysValueSerializer.cs
- CodeIdentifier.cs
- WindowsClaimSet.cs
- HashLookup.cs
- Reference.cs
- RefExpr.cs
- TableLayoutRowStyleCollection.cs
- WebPartConnectionsCancelVerb.cs
- bidPrivateBase.cs
- Rect.cs
- SqlPersonalizationProvider.cs
- XmlBaseReader.cs
- StateFinalizationDesigner.cs
- QilXmlWriter.cs
- TrackingDataItemValue.cs
- MenuEventArgs.cs
- ExceptionUtil.cs
- GrammarBuilderDictation.cs
- TimelineGroup.cs
- CommandDevice.cs
- ZoomPercentageConverter.cs
- XsltContext.cs
- DataSourceCacheDurationConverter.cs
- Odbc32.cs
- StringResourceManager.cs
- RelationshipFixer.cs
- FunctionUpdateCommand.cs
- HiddenField.cs
- TypeInfo.cs
- ByteStreamMessageEncoder.cs
- RoleGroup.cs
- AnimationClockResource.cs
- EventPrivateKey.cs
- TextEndOfLine.cs
- CellQuery.cs
- BindingListCollectionView.cs
- TextProperties.cs
- EntryPointNotFoundException.cs
- HttpListenerTimeoutManager.cs
- SQLInt32.cs
- EraserBehavior.cs
- XsltContext.cs
- PersonalizationDictionary.cs
- AuthStoreRoleProvider.cs
- ConsumerConnectionPointCollection.cs
- ItemCollection.cs
- DynamicValidatorEventArgs.cs
- XsdCachingReader.cs
- TagPrefixAttribute.cs
- ViewManager.cs
- WebPartConnectionsConfigureVerb.cs
- Expression.cs
- Point3D.cs
- HandlerBase.cs
- LocalizationParserHooks.cs
- PolyQuadraticBezierSegment.cs
- HiddenFieldPageStatePersister.cs
- WasAdminWrapper.cs
- FunctionCommandText.cs
- AutomationEventArgs.cs
- DuplicateMessageDetector.cs
- XmlSchemaSimpleContent.cs
- ApplicationInfo.cs
- SelectionWordBreaker.cs
- InputGestureCollection.cs
- XamlParser.cs
- ValueTable.cs
- ValidatingPropertiesEventArgs.cs
- StateDesignerConnector.cs
- Line.cs
- BufferModesCollection.cs
- ImportedPolicyConversionContext.cs
- SqlOuterApplyReducer.cs
- ResolveCriteria11.cs
- CompiledQuery.cs
- PathSegment.cs
- SynchronizedDispatch.cs
- RangeValuePatternIdentifiers.cs
- MasterPage.cs
- DetailsViewInsertEventArgs.cs
- CompositeDataBoundControl.cs