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 | |
---|---|---|
ParameterInfo | Initializes a new instance of the ParameterInfo class. |
Top
Properties
Name | Description | |
---|---|---|
Attributes | Gets the attributes for this parameter. | |
DefaultValue | Gets the default value, if the parameter has a default value. | |
IsIn | Gets a value indicating whether this is an input parameter. | |
IsOptional | Gets a value indicating whether this parameter is optional. | |
IsOut | Gets a value indicating whether this is an output parameter. | |
Member | Gets the member in which the parameter is defined. | |
MetadataToken | Gets a value that identifies this parameter in metadata. | |
Name | Gets the name of the parameter. | |
ParameterType | Gets the type of this parameter. | |
Position | Gets the zero-based position of the parameter in the formal parameter list. | |
RawDefaultValue | Gets a value indicating the default value if the parameter has a default value. |
Top
Methods
Name | Description | |
---|---|---|
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). |
|
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.) | |
GetCustomAttributes(Boolean) | Gets all the custom attributes defined on this parameter. | |
GetCustomAttributes(Type, Boolean) | Gets the custom attributes of the specified type or its derived types that are applied to this parameter. | |
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(). |
|
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
IsDefined | Determines whether the custom attribute of the specified type or its derived types is applied to this parameter. | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
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.
Note: |
---|
To run this example, see Building Examples That Use a Demo Method and a TextBlock Control. |
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.