This class allows the inspection of the type and behavior of a method parameter. Because parameters can have custom attributes on them, the class implements ICustomAttributeProvider. Attributes returns the attributes defined on this parameter. If the parameter has a default, it is stored in DefaultValue. Retrieve the name, type, and member the parameter is from by inspecting Name, ParameterType, and Member. Position returns the ordinal position of this parameter. IsOptional returns true if the parameter is optional, and IsLcid indicates when the parameter is a locale identifier.

A parameter is passed by reference if the IsByRef property of its ParameterType property is true and the IsOut property is false (out parameters have IsByRef and IsOut set to true). A parameter that has been marked as [In] has IsOut set to false and IsIn set to true.

public class ParameterInfo : ICustomAttributeProvider {
// Protected Constructors
   protected ParameterInfo( );
// Protected Instance Fields
   protected ParameterAttributes AttrsImpl;
   protected Type ClassImpl;
   protected object DefaultValueImpl;
   protected MemberInfo MemberImpl;
   protected string NameImpl;
   protected int PositionImpl;
// Public Instance Properties
   public virtual ParameterAttributes Attributes{get; }
   public virtual object DefaultValue{get; }
   public bool IsIn{get; }
   public bool IsLcid{get; }
   public bool IsOptional{get; }
   public bool IsOut{get; }
   public bool IsRetval{get; }
   public virtual MemberInfo Member{get; ...

Get C# in a Nutshell, Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.