How do you do these questions? The first two questions could have multiple answers and the third is one answer only.

Answer:
1. c is the correct option, a and b are false
2. It is always desirable that all the object instance variables contribute to calculating the hash code.
3..( getfirstname +getSecondName).Hashcode()
Explanation:
1. Two same hashcode cannot be in same hashset, and if two keys are equal then it does not mean, their hash code should also be equal. And if a key is greater, then its hashcode will definitely be greater.
2. Each object instance variable must contribute to calculating the hash code, as we need one hash code for each key or object. However, set.Contains(Obj) must return true if we have a hash code for that object, as it must be present in HashSet then.
3. Also for each of the key we need one hash code, and here the first name and the last name together are making one key, and hence we should concatenate both, and then generate a hash code for that concatenated key, and hence the correct option is (getFirstName + getSecondName).Hashcode()