2010-01-17 4 views
0

Actuellement, mon application est de 32 bits.Indication de taille int implicite ou explicite?

Cela signifie que toutes les tables qui s'exécutent sur les identifiants SQL Server 2008 sont INT qui est égale à System.Int32 et partout où j'analyse des chaînes en entiers, j'utilise Int32.TryParse().

J'ai appelé cette indication de taille int Implicit.

Si je veux faire ma demande pour être 64 bits, je pense qu'il y aura 2 scénarios:

  • renommer tous Int32-Int64 et INT à BIGINT.

ou

  • Renommer tous Int32 à int et même faire une indication de taille int être Explicit.

Quel est le meilleur, comment pensez-vous?

Répondre

2

C# et SQL Server ont tous les deux une taille fixe d'entiers sur toutes les plates-formes. int en C# (qui est simplement un alias pour System.Int32 structure) et SQL Server est toujours 32 bits. De même, long en C# (un alias pour la structure System.Int64 et bigint de SQL Server sont toujours 64 bits quelle que soit la plate-forme.

En C#, il est plus naturel d'utiliser l'alias défini de langue pour les types (int au lieu de Int32, au lieu long de Int64), sauf pour les noms de méthode publique (ReadInt64 est préférable de ReadLong) que la méthode peut être utilisée dans une langue sans ou avec différents alias de type et il est préférable d'utiliser le nom .NET Framework au lieu de l'alias C#.

+0

Je ne sais pas pourquoi mais je pensais que int est un alias pour Int32 sur x86 et pour In64 sur x64. Tout est tombé en place. Merci! – abatishchev

+0

Je préfère également les appels de méthodes statiques de noms complets à des alias: Int32.TryParse() à int.TryParse() – abatishchev

0

Il n'est pas nécessaire de changer vos types de données juste parce que vous recompilez pour une plate-forme 64 bits

+0

Je ne veux pas exécuter en tant que processus x64 mais en prenant en charge la taille de la mémoire x64 – abatishchev

Questions connexes