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
- KerberosRequestorSecurityToken.cs
- DataGridViewDataConnection.cs
- WeakReferenceKey.cs
- TextServicesCompartmentEventSink.cs
- PieceDirectory.cs
- NetworkInterface.cs
- Operator.cs
- SystemParameters.cs
- StorageRoot.cs
- BufferedGraphicsContext.cs
- XmlUnspecifiedAttribute.cs
- _BasicClient.cs
- MasterPage.cs
- DBDataPermissionAttribute.cs
- UnaryNode.cs
- Menu.cs
- JournalEntry.cs
- querybuilder.cs
- SupportingTokenSecurityTokenResolver.cs
- WeakEventTable.cs
- TextParagraphProperties.cs
- Descriptor.cs
- FixedDocumentSequencePaginator.cs
- RootBuilder.cs
- Utils.cs
- Logging.cs
- XmlAnyElementAttributes.cs
- ProfilePropertyMetadata.cs
- ArrayListCollectionBase.cs
- SystemWebCachingSectionGroup.cs
- ChildrenQuery.cs
- WizardPanel.cs
- DefaultParameterValueAttribute.cs
- safex509handles.cs
- LoadWorkflowByKeyAsyncResult.cs
- AlternationConverter.cs
- DataGridViewToolTip.cs
- PagerSettings.cs
- Errors.cs
- XmlIterators.cs
- ObjectTokenCategory.cs
- SamlAudienceRestrictionCondition.cs
- CompilerGlobalScopeAttribute.cs
- FunctionParameter.cs
- DrawTreeNodeEventArgs.cs
- CompoundFileReference.cs
- MasterPageParser.cs
- IriParsingElement.cs
- MemoryResponseElement.cs
- FileDataSourceCache.cs
- DataGridToolTip.cs
- RSAPKCS1SignatureFormatter.cs
- WsatServiceCertificate.cs
- CrossContextChannel.cs
- CompilerCollection.cs
- LayoutTable.cs
- SettingsPropertyNotFoundException.cs
- NotifyInputEventArgs.cs
- HtmlControlPersistable.cs
- TypedRowGenerator.cs
- LiteralSubsegment.cs
- safemediahandle.cs
- MetadataHelper.cs
- SslStreamSecurityBindingElement.cs
- XmlDownloadManager.cs
- SerializerProvider.cs
- RoleGroup.cs
- BasePattern.cs
- GenericTypeParameterBuilder.cs
- Rect3D.cs
- ToolStripComboBox.cs
- FilterQuery.cs
- PersonalizationProvider.cs
- WebReference.cs
- RequestCachePolicyConverter.cs
- InputScopeManager.cs
- WorkItem.cs
- PerformanceCounters.cs
- BulletedListEventArgs.cs
- HtmlInputText.cs
- SqlClientFactory.cs
- HttpCookie.cs
- MediaContext.cs
- WebRequestModulesSection.cs
- LogicalExpr.cs
- Style.cs
- MouseActionValueSerializer.cs
- IdentitySection.cs
- NameValuePair.cs
- EventProviderClassic.cs
- Highlights.cs
- IdentityReference.cs
- HttpModuleCollection.cs
- SmtpFailedRecipientsException.cs
- SqlClientFactory.cs
- SmtpReplyReaderFactory.cs
- InstanceDescriptor.cs
- ObjectReferenceStack.cs
- Region.cs
- WindowsComboBox.cs