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
- AdRotator.cs
- EdmProviderManifest.cs
- FormViewCommandEventArgs.cs
- DataSysAttribute.cs
- BinarySerializer.cs
- AnimationStorage.cs
- ReadOnlyMetadataCollection.cs
- BitStream.cs
- ComponentCommands.cs
- SerializationObjectManager.cs
- XPathAncestorQuery.cs
- UnsafeNativeMethodsCLR.cs
- ChannelSinkStacks.cs
- ResourceDisplayNameAttribute.cs
- DependencyPropertyChangedEventArgs.cs
- Vector3DKeyFrameCollection.cs
- XmlWrappingWriter.cs
- ObjectManager.cs
- Common.cs
- FormatException.cs
- ToolboxDataAttribute.cs
- GlyphInfoList.cs
- SyndicationFeed.cs
- RouteItem.cs
- OracleMonthSpan.cs
- ProjectionPath.cs
- COM2PropertyDescriptor.cs
- DataGridPagerStyle.cs
- ButtonBaseAdapter.cs
- NamedObject.cs
- HttpFileCollection.cs
- IconHelper.cs
- PropertiesTab.cs
- SqlDataSourceAdvancedOptionsForm.cs
- ExpressionBuilderCollection.cs
- SocketManager.cs
- CompilerErrorCollection.cs
- DataGridAutoFormat.cs
- CodeEntryPointMethod.cs
- CodeDomSerializerException.cs
- AttributeProviderAttribute.cs
- Win32SafeHandles.cs
- PagesSection.cs
- MultiBinding.cs
- Renderer.cs
- SQLMoneyStorage.cs
- NamespaceInfo.cs
- PeerName.cs
- TextServicesDisplayAttributePropertyRanges.cs
- BaseProcessor.cs
- FlowLayoutSettings.cs
- UserControl.cs
- complextypematerializer.cs
- DurableEnlistmentState.cs
- TableHeaderCell.cs
- TextDecorationCollection.cs
- errorpatternmatcher.cs
- ErrorFormatter.cs
- TemplateXamlTreeBuilder.cs
- TypedDatasetGenerator.cs
- CompensationDesigner.cs
- IOException.cs
- RelationshipConverter.cs
- InvalidAsynchronousStateException.cs
- ProfilePropertyNameValidator.cs
- LambdaCompiler.cs
- COM2ExtendedBrowsingHandler.cs
- HostDesigntimeLicenseContext.cs
- BamlResourceSerializer.cs
- ObjectViewQueryResultData.cs
- ParserStreamGeometryContext.cs
- SmtpAuthenticationManager.cs
- StateRuntime.cs
- MultiView.cs
- regiisutil.cs
- TextTreeRootNode.cs
- RepeaterItemCollection.cs
- DataServiceQueryProvider.cs
- PeerResolverBindingElement.cs
- ProfileInfo.cs
- _NetworkingPerfCounters.cs
- InplaceBitmapMetadataWriter.cs
- WeakEventManager.cs
- ExpressionBinding.cs
- SelectionWordBreaker.cs
- HwndAppCommandInputProvider.cs
- WebServiceBindingAttribute.cs
- Preprocessor.cs
- SortDescription.cs
- TimeSpan.cs
- HttpListenerRequest.cs
- TextEditorCopyPaste.cs
- AppDomainFactory.cs
- ProfileGroupSettingsCollection.cs
- ObservableDictionary.cs
- ContractMapping.cs
- ArgIterator.cs
- PropertyNames.cs
- EntityTransaction.cs
- SQLBinaryStorage.cs