c# nullable int hasvalue