Страницы

Поиск по вопросам

среда, 18 декабря 2019 г.

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

#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 в результирующей сборке.

Комментариев нет:

Отправить комментарий