#c_sharp #net
This question already has answers here: Какая разница между string и String? (4 ответа) Разница типов (2 ответа) Псевдонимы(алиасы) в перечисления - правила использования (c#) (2 ответа) Закрыт 1 год назад. Слышал байку, что если писать так int i = 0, а не System.Int32 i = 0 или using System; ....... Int32 i = 0; происхожит какая-то оптимизация*. Есть ли какая-то разница между этими вариантами? *Количество набранных символов и т.д. не учитывать.
Ответы
Ответ 1
Разницы никакой, int и Int32 после компиляции в IL код станут одним и тем же. int это ключевое слово для c#, ровно как Integer для VisualBasic, но оба они представляют собой System.Int32.Ответ 2
int - примитив, доступный в компиляторе C#, в то время как Int32 является типом FCL и следовательно доступен для всех языков, соответствующих CLS.Ответ 3
В C# int - это simple type, алиаз System.Int32. Есть только один случай, когда упоминание типа допустимо, а упоминание алиаза - нет. Это конструкция nameof: // компилируется string name = nameof(Int32); // ошибка string name = nameof(int); Во всех остальных случаях нет никакой разницы между int, System.Int32 и using System + Int32. - все превратится в одно и то же упоминание типа System.Int32 в результирующей сборке.
Комментариев нет:
Отправить комментарий