Consider this common construct that you and I have thrown into ASPX pages for years now:
<%# DataBinder.Eval (Container.DataItem, "EmployeeID") %>
In .NET 3.5.1 and older it returns -- tada -- a string. No mystery there. But in .NET 4.0 it returns the same type as the underlying data type -- which in this case for me was a nullable int. Interesting, no?