Why can I convert to an int safely but not cast to an int?
===

Why does this work:

    ComboBox cb = sender as ComboBox;
    int validSelection = Convert.ToInt32(cb.Tag);
    if (cb.SelectedIndex != validSelection) {
    	cb.SelectedIndex = validSelection;
    }

...but this:

    ComboBox cb = sender as ComboBox;
    int validSelection = (int)cb.Tag; // <-- fails
    if (cb.SelectedIndex != validSelection) {
    	cb.SelectedIndex = validSelection;
    }


...errors out with "Object not set to a reference of an object"?