private static TodoItem CastAsTodoItem(ITodo item) { Type t = item.GetType(); if (t.Equals(typeof(SingleTodo)) || t.Equals(typeof(ListTodo))) { return(item.GetTodoItem()); } else { throw new ApplicationException("Unrecognized item type: " + t); } //switch (t) //{ // case typeof(SingleTodo): // return new TodoItem(); // case typeof(ListTodo): // return new TodoItem(); // default: // throw new ApplicationException("Unrecognized item type: " + item.GetType()); //} }