According to MCSD CERTIFICATION TOOLKIT (EXAM 70-483) book 3th chapter test question 15 How are values passed in generic methods? I found answer:
They are passed by reference
But according to my understanding this is not truth. I can have method with generic parameters:
    public static T aaa<T>(T a)
    {
        return a ;
    }
And call it by value:
int i=5;
aaa<int>(i);
Where my understanding is wrong?
UPD
Original question/answer
 15 . How are the values passed in generic methods?
 a . They are passed by value.
 b . They are passed by reference.
 c . They must be encapsulated in a property.
 d . They are passed during class instantiation
 
    