Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Ast / LabelExpression.cs / 1305376 / LabelExpression.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.Diagnostics; namespace System.Linq.Expressions { ////// Represents a label, which can be placed in any #if !SILVERLIGHT [DebuggerTypeProxy(typeof(Expression.LabelExpressionProxy))] #endif public sealed class LabelExpression : Expression { private readonly Expression _defaultValue; private readonly LabelTarget _target; internal LabelExpression(LabelTarget label, Expression defaultValue) { _target = label; _defaultValue = defaultValue; } ///context. If /// it is jumped to, it will get the value provided by the corresponding /// . Otherwise, it gets the value in . If the /// equals System.Void, no value should be provided. /// /// Gets the static type of the expression that this ///represents. (Inherited from .) /// The public sealed override Type Type { get { return _target.Type; } } ///that represents the static type of the expression. /// Returns the node type of this ///. (Inherited from .) /// The public sealed override ExpressionType NodeType { get { return ExpressionType.Label; } } ///that represents this expression. /// The public LabelTarget Target { get { return _target; } } ///which this label is associated with. /// /// The value of the public Expression DefaultValue { get { return _defaultValue; } } ///when the label is reached through /// normal control flow (e.g. is not jumped to). /// /// Dispatches to the specific visit method for this node type. /// protected internal override Expression Accept(ExpressionVisitor visitor) { return visitor.VisitLabel(this); } ////// 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 LabelExpression Update(LabelTarget target, Expression defaultValue) { if (target == Target && defaultValue == DefaultValue) { return this; } return Expression.Label(target, defaultValue); } } public partial class Expression { ////// Creates a /// Therepresenting a label with no default value. /// which this will be associated with. /// A public static LabelExpression Label(LabelTarget target) { return Label(target, null); } ///with no default value. /// Creates a /// Therepresenting a label with the given default value. /// which this will be associated with. /// The value of this when the label is reached through normal control flow. /// A public static LabelExpression Label(LabelTarget target, Expression defaultValue) { ValidateGoto(target, ref defaultValue, "label", "defaultValue"); return new LabelExpression(target, defaultValue); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.with the given default value.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TemplatedWizardStep.cs
- WindowsListView.cs
- TextEditorCopyPaste.cs
- AssociationSet.cs
- COAUTHIDENTITY.cs
- DateTimeFormatInfo.cs
- CodeSnippetCompileUnit.cs
- PKCS1MaskGenerationMethod.cs
- BevelBitmapEffect.cs
- NetworkStream.cs
- DataGridViewAdvancedBorderStyle.cs
- keycontainerpermission.cs
- CanonicalXml.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- ClientRoleProvider.cs
- TabRenderer.cs
- Debug.cs
- DoubleCollection.cs
- SignerInfo.cs
- CornerRadiusConverter.cs
- DataGridViewRow.cs
- DrawingAttributeSerializer.cs
- SystemFonts.cs
- TimeStampChecker.cs
- WebPartDisplayModeCancelEventArgs.cs
- GenericTextProperties.cs
- AppSettingsReader.cs
- RoleService.cs
- ExecutionPropertyManager.cs
- _LocalDataStoreMgr.cs
- PeerTransportElement.cs
- InternalDispatchObject.cs
- DataGridViewImageColumn.cs
- OrderedHashRepartitionEnumerator.cs
- PriorityItem.cs
- CommonGetThemePartSize.cs
- DBConcurrencyException.cs
- DropDownList.cs
- SessionPageStateSection.cs
- Point3DCollectionValueSerializer.cs
- IdentityHolder.cs
- InvalidProgramException.cs
- Common.cs
- WebRequestModulesSection.cs
- FillBehavior.cs
- ReferenceSchema.cs
- TimerElapsedEvenArgs.cs
- X509KeyIdentifierClauseType.cs
- MaskedTextBoxDesignerActionList.cs
- arabicshape.cs
- ProfileSettings.cs
- ColumnCollection.cs
- NotifyParentPropertyAttribute.cs
- DataTableNameHandler.cs
- HostedTcpTransportManager.cs
- ItemDragEvent.cs
- UserControlBuildProvider.cs
- SpeechDetectedEventArgs.cs
- ToolStripPanelRenderEventArgs.cs
- ObjectTag.cs
- CopyNamespacesAction.cs
- XmlCharType.cs
- XmlComplianceUtil.cs
- EventMemberCodeDomSerializer.cs
- DbConnectionStringBuilder.cs
- RegistryKey.cs
- XmlDocumentSurrogate.cs
- WebEvents.cs
- BatchParser.cs
- HighlightOverlayGlyph.cs
- JsonEnumDataContract.cs
- MultiSelector.cs
- NamespaceCollection.cs
- SqlDeflator.cs
- AutomationPatternInfo.cs
- EntityDataSourceValidationException.cs
- TextContainerChangedEventArgs.cs
- EdmItemCollection.cs
- TakeOrSkipQueryOperator.cs
- SafeBitVector32.cs
- ExpressionVisitor.cs
- FixedElement.cs
- _NetworkingPerfCounters.cs
- handlecollector.cs
- BitStack.cs
- WindowPatternIdentifiers.cs
- LicenseManager.cs
- HttpTransportElement.cs
- PowerModeChangedEventArgs.cs
- SelectedCellsChangedEventArgs.cs
- PointConverter.cs
- RouteData.cs
- HandleInitializationContext.cs
- SqlVersion.cs
- WpfSharedXamlSchemaContext.cs
- CapacityStreamGeometryContext.cs
- PrimitiveSchema.cs
- MissingFieldException.cs
- MarkupProperty.cs
- XmlLoader.cs