Int32 против Int64 против Int в С#

Возможный дубликат:
Предполагая 32-битные ints

Итак, я где-то читал, что int равно int32 в С#. Верно ли это также и на 64-битных машинах? Должен ли я использовать int32 только для того, чтобы никто в Microsoft не решил изменить размер int?

Ответ 1

int является псевдонимом для Int32

long является псевдонимом для Int64

Их размеры не изменятся, просто используйте то, что вам нужно использовать.

Использование их в вашем коде никак не связано с 32-битными и 64-битными машинами

EDIT: В отношении комментариев о безопасности потоков. Вот хороший вопрос и ответы, которые подробно описывают любые проблемы, о которых вам нужно знать. В С# используется Int64 для 32-разрядного процессора опасно

Ответ 2

На 32-битных и 64-битных машинах:

  • long - 64-разрядный, это синоним System.Int64.
  • int - 32-разрядный, это синоним System.Int32.

Ответ 3

Вам не нужно беспокоиться. int - это Int32 - это 32-разрядное целое число со знаком, и это не изменится, независимо от используемой платформы.

См. Microsoft С# spec (раздел 1.3), ECMA С# spec (раздел 8.2.1) и спецификация ECMA CLI (раздел 8.2.2).

Ответ 4

Просто НЕТ. Типы согласованы.

Ответ 5

Целое число - 32 бит Длинные 64 бит

На 32-битных и 64-разрядных процессорах

Ответ 6

Я использовал Int32 в первый год работы с .NET(затем 1.0). В основном это делалось для чтения на разных языках, поскольку Int32 выглядит так же, как и в VB, как в С#. Оглядываясь назад, я вижу, что все это было глупо. Используйте родные типы и не потейте.