In one of our application the parameters passed to a stored procedure in this way
Dim parm As New SqlParameter(\"searchText\", SqlDbType.VarChar)
parm.Direct
According to the documentation, the name must start with an @:
The ParameterName is specified in the form @paramname.
According to the source code (have a look at SqlCommand and SqlParameter.ParameterNameFixed in the reference source), an @ is added automatically, if needed.
So yes, it works, but it's an undocumented feature. Best practice recommends that you do not rely on this and manually prefix your parameter name with an @.