2010-03-01 5 views

Répondre

3

les opérations suivantes:

Public Const test As ULong = 1UL << 31 

Vous devez indiquer explicitement le compilateur que vous faites l'opération sur un ULong.

Le C# équivalent fonctionne:

public const ulong test = 1UL << 31; 
+0

+1 et merci, bon à savoir! – Fredou

5

Vous ne pouvez pas changer 1 << 31 avec un long type de données, de sorte que vous obtenez cette erreur. Cela est dû au fait que 1, en tant que littéral entier, est traité comme un Int32, qui est le littéral entier par défaut.

Vous devez contourner ce problème en définissant ce que:

Public Const test As ULong = 1UL << 30 
Public Const test2 As ULong = 1UL << 31 

Le drapeau UL dit de faire le 1 un unsigned long. See Type characters for details.

+0

Votre lien est cassé;) –

+0

+1, vous auriez obtenu le chèque vert mais Kelsey était plus rapide – Fredou

+0

@Aequitarum: Merci - fixe. –