Я переопределяю получение хеш-кода. Есть пункт, гдеСуществуют ли утилиты для выполнения небезопасной арифметики в VB.NET?
Hash = 1210600964 * 31 + -837896230
который вызывает OverflowException
. Есть ли способ, который я могу использовать, например:
Hash = addUnsafe(multiplyUnsafe(1210600964, 31), -837896230)
Без необходимости связывать мой проект с другой сборкой? Я не хочу удалять проверки переполнения. dllimports
в порядке.
Возможный дубликат [Переопределение GetHashCode в VB без проверки ключевого слова без проверки/непроверенного?] (Http://stackoverflow.com/questions/4654227/overriding-gethashcode-in-vb-without-checked-unchecked-keyword-support) – sstan
@sstan нет, это требует системного API, который допускает небезопасную арифметику. –
небезопасно, я предполагаю, что вы хотите, чтобы ваш код разрешал арифметические переполнения без исключения исключения, не так ли? Если это так, то это то, что выполняет ключевое слово C# «unchecked», но у VB.NET нет встроенной поддержки. Связанный нить обеспечивает способы ограничения этого ограничения в VB.NET. Дайте мне знать, если я вас не понимаю. – sstan