Convert, Parse, Cast

Все 3 варианта используются для преобразования типа. Чем они все отличаются друг от друга?

Из всего вышеперечисленного преобразованием типов является только Cast, так что если вам нужно именно преобразование типов - то используйте именно его.

Convert - это метод, выполняющий конвертирование (что впрочем и так понятно по названию). Convert, по сравнению с Parse, является более безопасным, поскольку внутри себя вызывает метод Parse, но при возникновении ArgumentNullException не вызывает это исключение, а просто возвращает 0. Также этот метод может принимать любой объект, который реализует интерфейс IConvertible, так что именно его стоит использовать когда не совсем известно что в метод будет передана именно строка, а не какой-то другой тип данных. Также метод Convert имеет возможность быстро конвертировать в любой тип в обобщённых методах.

Пожалуй, единственным плюсов Parse (если сравнивать его с Convert) будет быстродействие. Сам не проверял, но говорят, что Parse работает быстрее чем Convert, и если конвертировать какую-то большую строку, то это, пожалуй, будет заметно.