Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Ast / ParameterExpression.cs / 1305376 / ParameterExpression.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;
using System.Dynamic.Utils;
#if SILVERLIGHT
using System.Core;
#endif
namespace System.Linq.Expressions {
///
/// Represents a named parameter expression.
///
#if !SILVERLIGHT
[DebuggerTypeProxy(typeof(Expression.ParameterExpressionProxy))]
#endif
public class ParameterExpression : Expression {
private readonly string _name;
internal ParameterExpression(string name) {
_name = name;
}
internal static ParameterExpression Make(Type type, string name, bool isByRef) {
if (isByRef) {
return new ByRefParameterExpression(type, name);
} else {
if (!type.IsEnum) {
switch (Type.GetTypeCode(type)) {
case TypeCode.Boolean: return new PrimitiveParameterExpression(name);
case TypeCode.Byte: return new PrimitiveParameterExpression(name);
case TypeCode.Char: return new PrimitiveParameterExpression(name);
case TypeCode.DateTime: return new PrimitiveParameterExpression(name);
case TypeCode.DBNull: return new PrimitiveParameterExpression(name);
case TypeCode.Decimal: return new PrimitiveParameterExpression(name);
case TypeCode.Double: return new PrimitiveParameterExpression(name);
case TypeCode.Int16: return new PrimitiveParameterExpression(name);
case TypeCode.Int32: return new PrimitiveParameterExpression(name);
case TypeCode.Int64: return new PrimitiveParameterExpression(name);
case TypeCode.Object:
// common reference types which we optimize go here. Of course object is in
// the list, the others are driven by profiling of various workloads. This list
// should be kept short.
if (type == typeof(object)) {
return new ParameterExpression(name);
} else if (type == typeof(Exception)) {
return new PrimitiveParameterExpression(name);
} else if (type == typeof(object[])) {
return new PrimitiveParameterExpression
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Stroke.cs
- InvokeBase.cs
- ApplyTemplatesAction.cs
- ElementUtil.cs
- TextOnlyOutput.cs
- FlowLayout.cs
- InkCollectionBehavior.cs
- CodeChecksumPragma.cs
- NativeMethods.cs
- FigureHelper.cs
- TypeContext.cs
- XmlSerializerAssemblyAttribute.cs
- LinqDataSourceInsertEventArgs.cs
- ChannelServices.cs
- PermissionToken.cs
- PropertyBuilder.cs
- ListItemCollection.cs
- StringStorage.cs
- UpnEndpointIdentity.cs
- UnwrappedTypesXmlSerializerManager.cs
- PersianCalendar.cs
- HtmlElement.cs
- Tokenizer.cs
- FileDialogCustomPlace.cs
- AsymmetricSignatureDeformatter.cs
- XPathSingletonIterator.cs
- X509Extension.cs
- SpoolingTaskBase.cs
- Symbol.cs
- DataRowComparer.cs
- ConvertersCollection.cs
- columnmapfactory.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- RenderingEventArgs.cs
- MatrixValueSerializer.cs
- SystemDropShadowChrome.cs
- SByte.cs
- StrokeDescriptor.cs
- InvalidOleVariantTypeException.cs
- ColumnPropertiesGroup.cs
- Normalizer.cs
- CommandPlan.cs
- StaticTextPointer.cs
- XmlTypeMapping.cs
- ToolStripRendererSwitcher.cs
- DetailsViewInsertEventArgs.cs
- CreateUserWizardDesigner.cs
- XmlWellformedWriter.cs
- CatalogZoneBase.cs
- ProfileService.cs
- XmlElementList.cs
- SslStream.cs
- ImageSource.cs
- TextServicesProperty.cs
- FormViewCommandEventArgs.cs
- Event.cs
- DispatcherOperation.cs
- XmlException.cs
- ReflectEventDescriptor.cs
- UserNameSecurityTokenProvider.cs
- EntityProviderFactory.cs
- TextChangedEventArgs.cs
- Frame.cs
- Rijndael.cs
- IndexedEnumerable.cs
- ArraySortHelper.cs
- ArgIterator.cs
- QilUnary.cs
- SingleStorage.cs
- XslAstAnalyzer.cs
- AppDomainEvidenceFactory.cs
- DynamicRendererThreadManager.cs
- ValidationException.cs
- TranslateTransform3D.cs
- DataGridTableCollection.cs
- ToolStripMenuItem.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- Int64Storage.cs
- DocumentGridContextMenu.cs
- SharedPersonalizationStateInfo.cs
- AdornerHitTestResult.cs
- SqlCacheDependency.cs
- SchemaImporterExtension.cs
- HeaderedContentControl.cs
- XmlDsigSep2000.cs
- ResumeStoryboard.cs
- XmlValidatingReaderImpl.cs
- SystemGatewayIPAddressInformation.cs
- InheritanceAttribute.cs
- SettingsPropertyIsReadOnlyException.cs
- ActivationServices.cs
- MetadataItemCollectionFactory.cs
- ScriptRef.cs
- Int32.cs
- DispatcherObject.cs
- LinearGradientBrush.cs
- ProfileEventArgs.cs
- ProfileGroupSettingsCollection.cs
- NamespaceList.cs
- recordstatefactory.cs