Синтаксис (приведение) очень перегружен и может выполнять:
- упаковка / распаковка
- приведение типов, сохраняющих ссылки,
- операторы преобразования, определенные втипы
- встроенные примитивные преобразования
- Обертывание / развёртывание Nullable-of-T
"as" выполняет подмножество этих
- тип, сохраняющий ссылку, приводит к
- некоторому ограниченному боксу nullable-of-T
Но важная особенность здесь состоит в том, что он удваивается как без исключения test типовых отношений - более эффективно, чем исключение или тестирование с отражением.В частности, например:
// is it a list?
IList list = obj as IList
if(list != null) {
// specific code for lists
}
Если вы твердо уверены, что объект является чем-то, предпочтительным является (приведение), поскольку это действует как утверждение вашей веры.Было бы желательно исключение (в этом случае).
Методы Convert обрабатывают другой диапазон сценариев, включая преобразования строк (в противном случае доступны через такие вещи, как статические методы .Parse)
Если что,Конвертировать, что я использую меньше всего.Синтаксис (cast) и «as» используется очень регулярно.