| File: System\Reflection\TypeLoading\Parameters\RoThinMethodParameter.cs | Web Access |
| Project: src\runtime\src\libraries\System.Reflection.MetadataLoadContext\src\System.Reflection.MetadataLoadContext.csproj (System.Reflection.MetadataLoadContext) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.Diagnostics; namespace System.Reflection.TypeLoading { /// <summary> /// Base class for all RoParameter's returned by MethodBase.GetParameters() that don't have an entry in the Param table. /// (in practice, these are return value "parameters.") These parameters have no name, custom attributes or default values. /// </summary> internal sealed class RoThinMethodParameter : RoMethodParameter { internal RoThinMethodParameter(IRoMethodBase roMethodBase, int position, Type parameterType) : base(roMethodBase, position, parameterType) { Debug.Assert(roMethodBase != null); Debug.Assert(parameterType != null); } public sealed override string? Name => null; public sealed override ParameterAttributes Attributes => ParameterAttributes.None; public sealed override IEnumerable<CustomAttributeData> CustomAttributes => Array.Empty<CustomAttributeData>(); public sealed override int MetadataToken => 0x08000000; // nil ParamDef token public sealed override bool HasDefaultValue => true; // Compat: returning "true" makes no sense but this is how it's always been. // Returning "null" matches the .NET Framework behavior, though this is inconsistent with the DBNull/Missing values // returned by fat ParameterInfo's without default values. public sealed override object? RawDefaultValue => null; } }