ParameterAttributes 枚举 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义可以与参数相关联的属性。 这些属性在 CorHdr.h 中进行定义。
此枚举支持其成员值的按位组合。
public enum class ParameterAttributes[System.Flags]
public enum ParameterAttributes[System.Flags]
[System.Serializable]
public enum ParameterAttributes[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum ParameterAttributes[<System.Flags>]
type ParameterAttributes = [<System.Flags>]
[<System.Serializable>]
type ParameterAttributes = [<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ParameterAttributes = Public Enum ParameterAttributes- 继承
- 属性
字段
| 名称 | 值 | 说明 | 
|---|---|---|
| HasDefault | 4096 | 指定参数具有默认值。 | 
| HasFieldMarshal | 8192 | 指定该参数具有字段封送处理信息。 | 
| In | 1 | 指定该参数是一个输入参数。 | 
| Lcid | 4 | 指定该参数是一个区域设置标识符 (lcid)。 | 
| None | 0 | 指定不存在参数属性。 | 
| Optional | 16 | 指定参数为可选。 | 
| Out | 2 | 指定该参数是一个输出参数。 | 
| Reserved3 | 16384 | 保留。 | 
| Reserved4 | 32768 | 保留。 | 
| ReservedMask | 61440 | 指定该参数是保留的。 | 
| Retval | 8 | 指定该参数是一个返回值。 | 
示例
以下示例显示指定参数的属性。
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
注解
若要获取 ParameterAttributes 值,请先获取 Type。 从 中 Type获取 ParameterInfo 数组。 值 ParameterAttributes 在 数组内。
这些枚举器值依赖于可选的元数据。 并非所有属性都可用于所有编译器。 请参阅相应的编译器说明,以确定哪些枚举值可用。