Why does this require a cast? - C#