These attributes are specified on a parameter. When the parameter has a default value, HasDefault is asserted. Optional , Out , In , and Retval all behave as you would expect them to. If a parameter has no attribute, None must be marked alone. If the parameter contains locale identifying information, Lcid should be set. Lastly, if the parameter is for marshaling information, HasFieldMarshal is asserted. public enum ParameterAttributes { None = 0x00000000 , In = 0x00000001 , Out = 0x00000002 , Lcid = 0x00000004 , Retval = 0x00000008 , Optional = 0x00000010 , HasDefault = 0x00001000 , HasFieldMarshal = 0x00002000 , Reserved3 = 0x00004000 , Reserved4 = 0x00008000 , ReservedMask = 0x0000F000 } HierarchySystem.Object System.ValueType System.Enum(System.IComparable , System.IFormattable , System.IConvertible) ParameterAttributes Returned ByParameterInfo.Attributes Passed ToSystem.Reflection.Emit.ConstructorBuilder.DefineParameter( ) , System.Reflection.Emit.MethodBuilder.DefineParameter( ) |