ParameterAttributes 列挙型


パラメーターに関連付けることができる属性を定義します。Defines the attributes that can be associated with a parameter. これらは、CorHdr.h で定義されます。These are defined in CorHdr.h.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class ParameterAttributes
public enum ParameterAttributes
type ParameterAttributes = 
Public Enum ParameterAttributes


HasDefault 4096

パラメーターが既定の値を使用することを指定します。Specifies that the parameter has a default value.

HasFieldMarshal 8192

パラメーターがフィールド マーシャリング情報を持つことを指定します。Specifies that the parameter has field marshaling information.

In 1

パラメーターが入力パラメーターであることを指定します。Specifies that the parameter is an input parameter.

Lcid 4

パラメーターがロケール識別子 (LCID: LoCale Identifier) であることを指定します。Specifies that the parameter is a locale identifier (lcid).

None 0

パラメーター属性がないことを指定します。Specifies that there is no parameter attribute.

Optional 16

パラメーターが省略可能であることを指定します。Specifies that the parameter is optional.

Out 2

パラメーターが出力パラメーターであることを指定します。Specifies that the parameter is an output parameter.

Reserved3 16384


Reserved4 32768


ReservedMask 61440

パラメーターが予約済みであることを指定します。Specifies that the parameter is reserved.

Retval 8

パラメーターが戻り値を持つことを指定します。Specifies that the parameter is a return value.

次の例では、指定されたパラメーターの属性を表示します。The following example displays the attributes of the specified parameter.

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;
public ref class paramatt
   static void mymethod( String^ str1, [Out]interior_ptr<String^> str2, interior_ptr<String^> str3 )
       *str2 = "string";


int main()
   Console::WriteLine( "\nReflection.ParameterAttributes" );
   // Get the Type and the method.
   Type^ Mytype = Type::GetType( "paramatt" );
   MethodBase^ Mymethodbase = Mytype->GetMethod( "mymethod" );
   // Display the method.
   Console::Write( "\nMymethodbase = {0}", Mymethodbase );
   // Get the ParameterInfo array.
   array<ParameterInfo^>^Myarray = Mymethodbase->GetParameters();
   // Get and display the attributes for the second parameter.
   ParameterAttributes Myparamattributes = Myarray[ 1 ]->Attributes;
   Console::Write( "\nFor the second parameter:\nMyparamattributes = {0}, which is an {1}", (int)Myparamattributes, Myparamattributes );
   return 0;

using System;
using System.Reflection;
class paramatt
    public static void mymethod (string str1, out string str2, ref string str3)
        str2 = "string";
    public static int Main(string[] args)
        // Get the Type and the method.
        Type Mytype = Type.GetType("paramatt");
        MethodBase Mymethodbase = Mytype.GetMethod("mymethod");
        // Display the method.
        Console.Write("\nMymethodbase = " + Mymethodbase);
        // Get the ParameterInfo array.
        ParameterInfo[] Myarray = Mymethodbase.GetParameters();
        // Get and display the attributes for the second parameter.
        ParameterAttributes Myparamattributes = Myarray[1].Attributes;
        Console.Write("\nFor the second parameter:\nMyparamattributes = " 
            + (int) Myparamattributes
            + ", which is an "
            + Myparamattributes.ToString());
        return 0;
Imports System.Reflection

Class paramatt

    Public Shared Sub mymethod(ByVal str1 As String, ByRef str2 As String, _
    ByRef str3 As String)
        str2 = "string"
    End Sub

    Public Shared Function Main() As Integer
        Console.WriteLine(ControlChars.CrLf + "Reflection.ParameterAttributes")

        ' Get the Type and the method.
        Dim Mytype As Type = Type.GetType("paramatt")
        Dim Mymethodbase As MethodBase = Mytype.GetMethod("mymethod")

        ' Display the method.
        Console.WriteLine("Mymethodbase = " + Mymethodbase.ToString())

        ' Get the ParameterInfo array.
        Dim Myarray As ParameterInfo() = Mymethodbase.GetParameters()

        ' Get and display the attributes for the second parameter.
        Dim Myparamattributes As ParameterAttributes = Myarray(1).Attributes

        Console.WriteLine("For the second parameter:" + ControlChars.CrLf _
           + "Myparamattributes = " + CInt(Myparamattributes).ToString() _
           + ", which is a " + Myparamattributes.ToString())

        Return 0
    End Function
End Class


ParameterAttributes値を取得するにはType、最初にを取得します。To get the ParameterAttributes value, first get the Type. から、 ParameterInfo配列を取得します。 TypeFrom the Type, get the ParameterInfo array. ParameterAttributes値は配列内にあります。The ParameterAttributes value is within the array.

これらの列挙子の値は、オプションのメタデータに依存します。These enumerator values are dependent on optional metadata. すべてのコンパイラからすべての属性を使用できるわけではありません。Not all attributes are available from all compilers. 使用できる列挙値を判断するには、適切なコンパイラの指示を参照してください。See the appropriate compiler instructions to determine which enumerated values are available.