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
- RevocationPoint.cs
- UseLicense.cs
- EdmComplexPropertyAttribute.cs
- CodeDomConfigurationHandler.cs
- CommandDevice.cs
- AssemblyFilter.cs
- IndexedEnumerable.cs
- SafeCertificateStore.cs
- KeyValueSerializer.cs
- TextTabProperties.cs
- OleDbInfoMessageEvent.cs
- PresentationAppDomainManager.cs
- ErrorWebPart.cs
- Propagator.JoinPropagator.cs
- SoapMessage.cs
- ArraySubsetEnumerator.cs
- FormatException.cs
- BaseDataListPage.cs
- RoutedEventConverter.cs
- ContractMapping.cs
- ContentElementCollection.cs
- BitmapDownload.cs
- SelectionItemPatternIdentifiers.cs
- mediaeventshelper.cs
- ShapingEngine.cs
- AnnotationAdorner.cs
- StickyNoteHelper.cs
- SystemColors.cs
- DebugView.cs
- XmlSerializerNamespaces.cs
- FtpCachePolicyElement.cs
- StyleBamlRecordReader.cs
- BuildTopDownAttribute.cs
- FileUtil.cs
- Margins.cs
- DocumentSchemaValidator.cs
- ColorAnimationUsingKeyFrames.cs
- ObjRef.cs
- ContentElementAutomationPeer.cs
- CodeExpressionStatement.cs
- IDictionary.cs
- ValidationUtility.cs
- TextAction.cs
- TreeViewItemAutomationPeer.cs
- SqlClientFactory.cs
- StorageRoot.cs
- ConfigXmlSignificantWhitespace.cs
- EntityViewContainer.cs
- AppliedDeviceFiltersDialog.cs
- TemplateXamlParser.cs
- CheckedListBox.cs
- HTTPNotFoundHandler.cs
- TdsValueSetter.cs
- SchemaRegistration.cs
- SQLGuidStorage.cs
- UserControlParser.cs
- _BufferOffsetSize.cs
- WindowAutomationPeer.cs
- DeviceContext.cs
- Authorization.cs
- itemelement.cs
- ConnectionManager.cs
- EDesignUtil.cs
- DataStreamFromComStream.cs
- RangeBaseAutomationPeer.cs
- DataColumnMappingCollection.cs
- EmptyControlCollection.cs
- WrappedIUnknown.cs
- FaultContractInfo.cs
- SqlTypesSchemaImporter.cs
- ToolStripHighContrastRenderer.cs
- Image.cs
- Emitter.cs
- MenuItem.cs
- ForeignKeyConstraint.cs
- SignedXml.cs
- RoleManagerSection.cs
- FileLoadException.cs
- AdapterSwitches.cs
- TransformCryptoHandle.cs
- SecurityException.cs
- DataControlPagerLinkButton.cs
- HeaderCollection.cs
- TextServicesLoader.cs
- AsyncResult.cs
- ResXResourceSet.cs
- StreamGeometry.cs
- Panel.cs
- ConfigurationLockCollection.cs
- WinEventTracker.cs
- XslNumber.cs
- FrameworkElementFactoryMarkupObject.cs
- AssociationTypeEmitter.cs
- XmlNavigatorFilter.cs
- WindowsStreamSecurityUpgradeProvider.cs
- CardSpaceException.cs
- BasicHttpBindingCollectionElement.cs
- DataGridViewHitTestInfo.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- TemplateControlBuildProvider.cs