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
- TemplateKey.cs
- RelationshipSet.cs
- Rijndael.cs
- ReflectionHelper.cs
- AssertSection.cs
- ChannelSinkStacks.cs
- ADRoleFactory.cs
- PropertiesTab.cs
- ClientProxyGenerator.cs
- BlurBitmapEffect.cs
- ListControlDesigner.cs
- ICspAsymmetricAlgorithm.cs
- securitycriticaldataClass.cs
- QueryTaskGroupState.cs
- SafePointer.cs
- OletxTransactionManager.cs
- IsolatedStorage.cs
- ProgramNode.cs
- SystemMulticastIPAddressInformation.cs
- DummyDataSource.cs
- Binding.cs
- TextModifier.cs
- DependencyPropertyConverter.cs
- Splitter.cs
- EventLogTraceListener.cs
- SeverityFilter.cs
- TableRowGroup.cs
- Propagator.JoinPropagator.cs
- ObjectItemCollection.cs
- ClientFormsIdentity.cs
- InputMethod.cs
- QueryOutputWriter.cs
- SqlMethods.cs
- SQLByte.cs
- AddInEnvironment.cs
- CodeExporter.cs
- XmlSchemaFacet.cs
- NonceToken.cs
- PropertyIDSet.cs
- ProfileManager.cs
- TimeSpanConverter.cs
- Activity.cs
- ServiceCredentialsElement.cs
- util.cs
- DifferencingCollection.cs
- ErrorRuntimeConfig.cs
- PeerApplicationLaunchInfo.cs
- PixelFormatConverter.cs
- ItemsPresenter.cs
- DictationGrammar.cs
- TransformCryptoHandle.cs
- ManagementClass.cs
- XNodeSchemaApplier.cs
- XmlAnyElementAttribute.cs
- DataSourceGeneratorException.cs
- TripleDES.cs
- SystemWebExtensionsSectionGroup.cs
- RegexParser.cs
- InsufficientMemoryException.cs
- Literal.cs
- StrongNamePublicKeyBlob.cs
- QilIterator.cs
- WasAdminWrapper.cs
- CodeExpressionCollection.cs
- DPCustomTypeDescriptor.cs
- NameTable.cs
- DefaultValueTypeConverter.cs
- SqlProcedureAttribute.cs
- PeerUnsafeNativeMethods.cs
- HtmlGenericControl.cs
- ErrorFormatter.cs
- HtmlInputPassword.cs
- WebPartDescriptionCollection.cs
- TableLayoutCellPaintEventArgs.cs
- Opcode.cs
- SearchExpression.cs
- WebPartManagerInternals.cs
- SamlNameIdentifierClaimResource.cs
- ArraySegment.cs
- NumericExpr.cs
- SmiEventSink_Default.cs
- XmlSchemaCompilationSettings.cs
- Vector3DKeyFrameCollection.cs
- WeakEventManager.cs
- DataServiceRequestException.cs
- ToolboxItemLoader.cs
- DataListCommandEventArgs.cs
- TextBounds.cs
- GenericWebPart.cs
- AsyncSerializedWorker.cs
- Message.cs
- TableCellCollection.cs
- FlowLayoutPanel.cs
- DesignerActionListCollection.cs
- TrackBarDesigner.cs
- Vars.cs
- MonikerHelper.cs
- Margins.cs
- BuilderElements.cs
- IntPtr.cs