Udostępnij za pośrednictwem


ParameterInfo Class

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Discovers the attributes of a parameter and provides access to parameter metadata.

Inheritance Hierarchy

System.Object
  System.Reflection.ParameterInfo

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.None)> _
Public Class ParameterInfo _
    Implements ICustomAttributeProvider
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
public class ParameterInfo : ICustomAttributeProvider

The ParameterInfo type exposes the following members.

Constructors

  Name Description
Protected methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 ParameterInfo Initializes a new instance of the ParameterInfo class.

Top

Properties

  Name Description
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 Attributes Gets the attributes for this parameter.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 DefaultValue Gets the default value, if the parameter has a default value.
Public property IsIn Gets a value indicating whether this is an input parameter.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 IsOptional Gets a value indicating whether this parameter is optional.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 IsOut Gets a value indicating whether this is an output parameter.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 Member Gets the member in which the parameter is defined.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 MetadataToken Gets a value that identifies this parameter in metadata.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 Name Gets the name of the parameter.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 ParameterType Gets the type of this parameter.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 Position Gets the zero-based position of the parameter in the formal parameter list.
Public property RawDefaultValue Gets a value indicating the default value if the parameter has a default value.

Top

Methods

  Name Description
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)

In Silverlight for Windows Phone, this member is overridden by Equals(Object).

In XNA Framework, this member is overridden by Equals(Object).
Protected methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 Finalize Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetCustomAttributes(Boolean) Gets all the custom attributes defined on this parameter.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetCustomAttributes(Type, Boolean) Gets the custom attributes of the specified type or its derived types that are applied to this parameter.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)

In Silverlight for Windows Phone, this member is overridden by GetHashCode().

In XNA Framework, this member is overridden by GetHashCode().
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetType Gets the Type of the current instance. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 IsDefined Determines whether the custom attribute of the specified type or its derived types is applied to this parameter.
Protected methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 ToString Gets the parameter type and name represented as a string. (Overrides Object.ToString().)

Top

Remarks

Use an instance of ParameterInfo to obtain information about the parameter's data type, default value, and so on.

MethodBase.GetParameters returns an array of ParameterInfo objects representing the parameters of a method, in order.

Examples

The following example defines a method with four parameters and uses the ParameterInfo.Attributes property to display the attributes of the parameters.

Imports System.Reflection
Imports System.Runtime.InteropServices

Class Example

   Public Shared Sub mymethod(ByVal str1 As String, ByRef str2 As String, _
      <Out> ByRef str3 As String, <InAttribute> ByVal str4 As String)

      ' Add str1 to str2, which is ByRef.
      str2 &= str1
      ' When mymethod is called, str3 has no value. Give it one.
      str3 = "new value"
   End Sub

   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) 

      ' Get the method.
      Dim mm As MethodInfo = GetType(Example).GetMethod("mymethod")

      ' Display the method.
      outputBlock.Text &= "MethodInfo.ToString(): " & mm.ToString() & vbCrLf

      For Each param In mm.GetParameters()

         outputBlock.Text &= String.Format("Attributes for parameter {0}, ""{1}"": {2} ({3})", _ 
            param.Position, param.Name, param.Attributes, CInt(param.Attributes))

         If param.ParameterType.IsByRef Then
            outputBlock.Text &= "; the parameter type is ByRef" & vbLf
         Else
            outputBlock.Text &= vbLf
         End If
      Next
   End Sub
End Class

' This code produces the following output:
'
'MethodInfo.ToString(): Void mymethod(System.String, System.String ByRef, System.String ByRef)
'Attributes for parameter 0, "str1": None (0)
'Attributes for parameter 1, "str2": None (0); the parameter type is ByRef
'Attributes for parameter 2, "str3": Out (2); the parameter type is ByRef
'Attributes for parameter 3, "str4": In (1)
using System;
using System.Reflection;
using System.Runtime.InteropServices;

class Example
{
   public static void mymethod(string str1, ref string str2, out string str3,
      [In] string str4)
   {
      // Concatenate str1 to str2, which is ref.
      str2 += str1;
      // When mymethod is called, str3 has no value. Give it one.
      str3 = "new value";
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      MethodInfo mm = typeof(Example).GetMethod("mymethod");

      // Display the method.
      outputBlock.Text += "MethodInfo.ToString(): " + mm.ToString() + "\n";

      // Get and display the attributes for the second parameter.
      foreach (ParameterInfo param in mm.GetParameters())
      {
         outputBlock.Text += String.Format("Attributes for parameter {0}, \"{1}\": {2} ({3})",  
            param.Position, param.Name, param.Attributes, (int)param.Attributes);

         if (param.ParameterType.IsByRef)
         {
            outputBlock.Text += "; the parameter type is ref\n";
         }
         else
         {
            outputBlock.Text += "\n";
         }
      }
   }
}

/* This code produces the following output:

MethodInfo.ToString(): Void mymethod(System.String, System.String ByRef, System.String ByRef)
Attributes for parameter 0, "str1": None (0)
Attributes for parameter 1, "str2": None (0); the parameter type is ByRef
Attributes for parameter 2, "str3": Out (2); the parameter type is ByRef
Attributes for parameter 3, "str4": In (1)
 */

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Thread Safety

This type is thread safe.

See Also

Reference