ParameterAttributes Enumeración

Definición

Define los atributos que se pueden asociar con un parámetro.Defines the attributes that can be associated with a parameter. Se definen en CorHdr.h.These are defined in CorHdr.h.

Esta enumeración tiene el atributo FlagsAttribute, que permite una combinación bit a bit de sus valores de miembro.

public enum class ParameterAttributes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum ParameterAttributes
type ParameterAttributes = 
Public Enum ParameterAttributes
Herencia
ParameterAttributes
Atributos

Campos

HasDefault 4096

Especifica que el parámetro tiene un valor predeterminado.Specifies that the parameter has a default value.

HasFieldMarshal 8192

Especifica que el parámetro contiene información de cálculo de referencias de campo.Specifies that the parameter has field marshaling information.

In 1

Especifica que el parámetro es un parámetro de entrada.Specifies that the parameter is an input parameter.

Lcid 4

Especifica que el parámetro es un identificador regional (lcid).Specifies that the parameter is a locale identifier (lcid).

None 0

Especifica que no hay ningún atributo de parámetro.Specifies that there is no parameter attribute.

Optional 16

Especifica que este parámetro es opcional.Specifies that the parameter is optional.

Out 2

Especifica que el parámetro es un parámetro de salida.Specifies that the parameter is an output parameter.

Reserved3 16384

Reservado.Reserved.

Reserved4 32768

Reservado.Reserved.

ReservedMask 61440

Especifica que este parámetro está reservado.Specifies that the parameter is reserved.

Retval 8

Especifica que el parámetro es un valor devuelto.Specifies that the parameter is a return value.

Ejemplos

En el ejemplo siguiente se muestran los atributos del parámetro especificado.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
{
public:
   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)
    {
        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 = " + 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

Comentarios

Para obtener el ParameterAttributes valor, primero obtenga el Type.To get the ParameterAttributes value, first get the Type. En, obtenga la ParameterInfo matriz. TypeFrom the Type, get the ParameterInfo array. El ParameterAttributes valor está dentro de la matriz.The ParameterAttributes value is within the array.

Estos valores del enumerador dependen de los metadatos opcionales.These enumerator values are dependent on optional metadata. No todos los atributos están disponibles en todos los compiladores.Not all attributes are available from all compilers. Vea las instrucciones adecuadas del compilador para determinar qué valores enumerados están disponibles.See the appropriate compiler instructions to determine which enumerated values are available.

Se aplica a