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
- DefaultProxySection.cs
- OracleParameter.cs
- PrintingPermissionAttribute.cs
- FormatConvertedBitmap.cs
- SelectionProcessor.cs
- PrintPageEvent.cs
- RepeatInfo.cs
- LoginUtil.cs
- CroppedBitmap.cs
- TransformConverter.cs
- DocumentEventArgs.cs
- MaterialCollection.cs
- BindingExpressionUncommonField.cs
- WebControlParameterProxy.cs
- CellConstantDomain.cs
- SystemIPGlobalStatistics.cs
- BaseDataListComponentEditor.cs
- ComboBoxItem.cs
- StrokeNodeData.cs
- FileDialog.cs
- HandlerWithFactory.cs
- ToReply.cs
- SqlNodeTypeOperators.cs
- TextRangeAdaptor.cs
- DynamicObject.cs
- _SslState.cs
- ExecutionContext.cs
- ScopeCollection.cs
- XmlTextReaderImpl.cs
- FormatterServicesNoSerializableCheck.cs
- MatrixStack.cs
- BindingWorker.cs
- ExpressionEditorAttribute.cs
- OdbcUtils.cs
- SHA256.cs
- BitmapEffect.cs
- ButtonBaseDesigner.cs
- WebPartsSection.cs
- TypeExtensionConverter.cs
- HtmlGenericControl.cs
- DiscoveryMessageProperty.cs
- SvcMapFileLoader.cs
- HwndSubclass.cs
- CodeParameterDeclarationExpressionCollection.cs
- WaitForChangedResult.cs
- ObjectMemberMapping.cs
- PhysicalOps.cs
- OledbConnectionStringbuilder.cs
- PeerFlooder.cs
- UTF32Encoding.cs
- MissingManifestResourceException.cs
- DocumentXPathNavigator.cs
- TextEditorContextMenu.cs
- ContentPlaceHolder.cs
- CqlIdentifiers.cs
- RightsManagementProvider.cs
- HostedElements.cs
- FastPropertyAccessor.cs
- ListBoxItemWrapperAutomationPeer.cs
- StringConverter.cs
- TempFiles.cs
- SurrogateEncoder.cs
- PrintController.cs
- _OSSOCK.cs
- DataGridViewCellParsingEventArgs.cs
- ConstNode.cs
- ItemAutomationPeer.cs
- ISCIIEncoding.cs
- ScriptingRoleServiceSection.cs
- DataBinder.cs
- EntryWrittenEventArgs.cs
- RoutedEventValueSerializer.cs
- TemplatePropertyEntry.cs
- DrawingContextWalker.cs
- OracleDateTime.cs
- _ScatterGatherBuffers.cs
- TabletDeviceInfo.cs
- SiteMapPath.cs
- FixedSOMTableCell.cs
- ArglessEventHandlerProxy.cs
- MemoryMappedViewStream.cs
- ExpressionBuilderCollection.cs
- TraceProvider.cs
- GeneralTransform3DGroup.cs
- TemplateControlParser.cs
- MergeLocalizationDirectives.cs
- HttpServerVarsCollection.cs
- DataMemberConverter.cs
- SuppressedPackageProperties.cs
- HttpCacheVaryByContentEncodings.cs
- CriticalFinalizerObject.cs
- ModuleElement.cs
- SoapObjectInfo.cs
- GeometryGroup.cs
- PopupControlService.cs
- BasicExpressionVisitor.cs
- DeclarativeCatalogPart.cs
- QueryOutputWriter.cs
- AsmxEndpointPickerExtension.cs
- WCFBuildProvider.cs