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
- nulltextcontainer.cs
- SqlNode.cs
- MissingFieldException.cs
- MarshalByValueComponent.cs
- WebPartDeleteVerb.cs
- URLIdentityPermission.cs
- WeakKeyDictionary.cs
- XmlRawWriter.cs
- TripleDESCryptoServiceProvider.cs
- CheckBoxStandardAdapter.cs
- HwndSubclass.cs
- DataServiceHostFactory.cs
- SizeLimitedCache.cs
- DataKey.cs
- ProfileProvider.cs
- Operators.cs
- FileUpload.cs
- designeractionbehavior.cs
- Command.cs
- DirectionalLight.cs
- DocumentProperties.cs
- BaseTemplateParser.cs
- PrintPreviewControl.cs
- PrivateFontCollection.cs
- NativeWrapper.cs
- TypefaceMetricsCache.cs
- ModifierKeysValueSerializer.cs
- DrawingContextDrawingContextWalker.cs
- SrgsGrammarCompiler.cs
- filewebresponse.cs
- ForEachAction.cs
- IItemProperties.cs
- MarshalByValueComponent.cs
- BrowserCapabilitiesFactory.cs
- ReferentialConstraint.cs
- DataGridViewLayoutData.cs
- EntityViewGenerationConstants.cs
- PropertyChange.cs
- EmptyQuery.cs
- StaticTextPointer.cs
- AuthorizationSection.cs
- InputLanguageCollection.cs
- HttpHandlerActionCollection.cs
- DataListItemEventArgs.cs
- ComponentEditorForm.cs
- Select.cs
- ActivityCodeDomSerializationManager.cs
- TimerExtension.cs
- FlowPosition.cs
- UpdatePanelTrigger.cs
- ColumnWidthChangingEvent.cs
- Stylesheet.cs
- OdbcConnectionStringbuilder.cs
- ListView.cs
- DependencyObjectType.cs
- VersionPair.cs
- TextBoxLine.cs
- documentsequencetextpointer.cs
- DocumentOrderQuery.cs
- DocumentSchemaValidator.cs
- HttpWrapper.cs
- WindowsScrollBar.cs
- TogglePatternIdentifiers.cs
- DropShadowEffect.cs
- PageBuildProvider.cs
- NativeObjectSecurity.cs
- ProgressBar.cs
- MultiView.cs
- FunctionNode.cs
- Vector3DAnimation.cs
- SystemResourceKey.cs
- PanelContainerDesigner.cs
- XmlImplementation.cs
- DrawingAttributesDefaultValueFactory.cs
- MemoryPressure.cs
- AttributeData.cs
- TypeSystem.cs
- AtomicFile.cs
- RawStylusInputReport.cs
- Span.cs
- SelectionRangeConverter.cs
- XmlSchemaAttributeGroup.cs
- XmlQueryTypeFactory.cs
- ConfigUtil.cs
- DataControlFieldCollection.cs
- WebContentFormatHelper.cs
- ConfigXmlWhitespace.cs
- TypeBuilder.cs
- PackWebResponse.cs
- MarkupCompiler.cs
- XmlAttribute.cs
- CroppedBitmap.cs
- ReadOnlyNameValueCollection.cs
- ObjectContext.cs
- CqlWriter.cs
- SqlBuffer.cs
- RIPEMD160.cs
- Aggregates.cs
- BinaryObjectReader.cs
- UriTemplateClientFormatter.cs