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
- ImageCodecInfo.cs
- UTF32Encoding.cs
- EdmToObjectNamespaceMap.cs
- TableAutomationPeer.cs
- Util.cs
- RequestCache.cs
- Site.cs
- MenuCommands.cs
- AdornerLayer.cs
- MetafileHeader.cs
- FieldNameLookup.cs
- PasswordRecovery.cs
- BindableTemplateBuilder.cs
- PatternMatcher.cs
- ClipboardData.cs
- AssemblyHelper.cs
- DesignTimeValidationFeature.cs
- AuthorizationSection.cs
- ToolStripOverflow.cs
- TemplatedControlDesigner.cs
- Transform.cs
- MaxSessionCountExceededException.cs
- PageHandlerFactory.cs
- BufferedOutputStream.cs
- DataGridViewComboBoxEditingControl.cs
- SizeAnimationUsingKeyFrames.cs
- CodeCatchClauseCollection.cs
- PointLightBase.cs
- ToolbarAUtomationPeer.cs
- StringConverter.cs
- SynchronizationLockException.cs
- TagNameToTypeMapper.cs
- SslStream.cs
- StopStoryboard.cs
- ExitEventArgs.cs
- InstanceStoreQueryResult.cs
- ExpandCollapsePattern.cs
- StrokeIntersection.cs
- WindowsFormsLinkLabel.cs
- DataGridCommandEventArgs.cs
- TreeIterator.cs
- DataColumnCollection.cs
- ReachSerializer.cs
- LinqDataView.cs
- PassportIdentity.cs
- InsufficientMemoryException.cs
- MultiAsyncResult.cs
- RecognizerBase.cs
- SystemInfo.cs
- XPathArrayIterator.cs
- RIPEMD160Managed.cs
- ProviderSettings.cs
- BufferModeSettings.cs
- LineProperties.cs
- AssemblyCache.cs
- ArrayWithOffset.cs
- ExceptionUtil.cs
- DesignBindingPicker.cs
- AnnotationHighlightLayer.cs
- TagMapInfo.cs
- Int32RectConverter.cs
- ServiceDefaults.cs
- TreeNodeClickEventArgs.cs
- PartitionResolver.cs
- Model3DGroup.cs
- SemanticResolver.cs
- QueryExpression.cs
- HttpCookiesSection.cs
- TextEditorThreadLocalStore.cs
- UDPClient.cs
- BitmapEffectDrawing.cs
- MetadataSource.cs
- ResourceKey.cs
- UnmanagedMemoryStream.cs
- MasterPageCodeDomTreeGenerator.cs
- SQLStringStorage.cs
- StructuralType.cs
- XhtmlBasicValidationSummaryAdapter.cs
- TransformedBitmap.cs
- TableParaClient.cs
- Model3D.cs
- OleDbParameter.cs
- MostlySingletonList.cs
- ReadOnlyHierarchicalDataSource.cs
- MouseButton.cs
- SimpleLine.cs
- ScrollViewer.cs
- BookmarkEventArgs.cs
- CompareInfo.cs
- MarkupCompiler.cs
- MD5CryptoServiceProvider.cs
- ECDiffieHellmanCng.cs
- ControlsConfig.cs
- RoleGroupCollection.cs
- MergeLocalizationDirectives.cs
- CorruptingExceptionCommon.cs
- XPathSelfQuery.cs
- ThousandthOfEmRealPoints.cs
- EventListener.cs
- FillBehavior.cs