| File: Microsoft\CSharp\RuntimeBinder\Semantics\Types\ParameterModifierType.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.CSharp\src\Microsoft.CSharp.csproj (Microsoft.CSharp) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Diagnostics.CodeAnalysis; namespace Microsoft.CSharp.RuntimeBinder.Semantics { // ---------------------------------------------------------------------------- // // ParameterModifierType // // ParameterModifierType - a symbol representing parameter modifier -- either // out or ref. // // ---------------------------------------------------------------------------- internal sealed class ParameterModifierType : CType { public ParameterModifierType(CType parameterType, bool isOut) : base(TypeKind.TK_ParameterModifierType) { ParameterType = parameterType; IsOut = isOut; } public bool IsOut { get; } // True for out parameter, false for ref parameter. public CType ParameterType { get; } public override Type AssociatedSystemType { [RequiresUnreferencedCode(Binder.TrimmerWarning)] get => ParameterType.AssociatedSystemType.MakeByRefType(); } public override CType BaseOrParameterOrElementType => ParameterType; } }