Конвертировать против CType - PullRequest
13 голосов
/ 05 апреля 2011

Меня несколько смущает наличие двух , казалось бы, идентичных функций VB.NET: CType(args) и Convert.ToType(args).Я довольно новичок в .NET и VB в целом, поэтому я не совсем уверен, является ли один из них наследием VB6 или у них действительно разные цели / применения / ограничения.Один из них новее / безопаснее?Есть ли причины использовать один, а другой нет?

Ура!=)

Ответы [ 2 ]

10 голосов
/ 05 апреля 2011

CType от VB6 раз и не самый лучший, когда дело доходит до эффективности. Вы должны быть в состоянии использовать Convert.ToXxxx() методы для преобразования и TryCast() и DirectCast() для приведения вместо CType().

2 голосов
/ 11 августа 2015

См. эту страницу на MSDN . (Функции преобразования, CType, DirectCast и System.Convert Section).

Вывод этого раздела следующий:

Рекомендация : для большинства преобразований используйте собственный язык ключевые слова преобразования (включая CType ) для краткости и ясности, а также для разрешить оптимизацию компилятора при преобразовании между типами. использование DirectCast для преобразования объекта в строку и извлечения значения типы в штучной упаковке переменных объекта, когда известен встроенный тип (что есть, принуждение не обязательно).

...