A reference parameter is a parameter modified with the ref (ByRef in Visual Basic) keyword. The argument type supplied for a reference parameter must exactly match the reference parameter type. To use a type derived from the reference parameter type, the type must first be cast and assigned to a variable of the reference parameter type. Use of a generic method allows all types, subject to constraints, to be passed to the method without first casting the type to the reference parameter type.