Преобразование против CType

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

Ура! =)

Ответы

Ответ 1

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

Ответ 2

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

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

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