I just ran into an irritating little problem with using TryParse when assigning to nullable object. The following is the code I was using to assign a value from a ASP.NET dropdown list to a nullable Int32 variable:
If Int32.TryParse(ddlExample.SelectedValue, testobj.TestNullableInt32 )Then testobj.TestDescription = ddlExample.SelectedItem.Text End If
.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }
Apparently, TryParse actually attempts to access the value of the object to which it attempts to assign the parsed value which can cause an InvalidOperationException when it attempts to retrieve the value of the nullable object. So make sure to assign the parsed value to a regular type before assigning it to a nullable object. Oh yeah, I know it’s VB.NET code, but I do what the client wants. ;)