Explanation direct cast. If object is not of the given type, an InvalidCastException is thrown. Incorrect: Not B: If obj is not of the given type, result is null. Not C: If obj is not of a given type, result is false. Not D: This simply check the variable during runtime. It will not throw an exception. Reference: http://msdn.microsoft.com/en-us/library/ms173105.aspx