Есть ли разница между int и System.Int32? [дубликат]

182
29 апреля 2019, 07:10

На данный вопрос уже ответили:

  • Какая разница между string и String? 4 ответа
  • Разница типов 2 ответа
  • Псевдонимы(алиасы) в перечисления - правила использования (c#) 2 ответа

Слышал байку, что если писать так int i = 0, а не System.Int32 i = 0 или

using System;
.......
Int32 i = 0;

происхожит какая-то оптимизация*. Есть ли какая-то разница между этими вариантами?

*Количество набранных символов и т.д. не учитывать.

Answer 1

Разницы никакой, int и Int32 после компиляции в IL код станут одним и тем же. int это ключевое слово для c#, ровно как Integer для VisualBasic, но оба они представляют собой System.Int32.

Answer 2

int - примитив, доступный в компиляторе C#, в то время как Int32 является типом FCL и следовательно доступен для всех языков, соответствующих CLS.

Answer 3

В C# int - это simple type, алиаз System.Int32.

Есть только один случай, когда упоминание типа допустимо, а упоминание алиаза - нет. Это конструкция nameof:

// компилируется
string name = nameof(Int32);
// ошибка
string name = nameof(int);

Во всех остальных случаях нет никакой разницы между int, System.Int32 и using System + Int32. - все превратится в одно и то же упоминание типа System.Int32 в результирующей сборке.

READ ALSO
CSV кодировка символов

CSV кодировка символов

Имеются строки, которые содержат символы "'¬', '∧', '∨', '→', '⇔',"При использовании StreamWriter sw = new StreamWriter(fstream); т

182
Оптимизация размера апк файла

Оптимизация размера апк файла

В папке streaming assets лежали файлы в форматеmp4

135