Это потому, что вычисления в правой части присваивания выполняются в виде целочисленного типа. И это переполняет целое число
Вы можете исправить это с помощью:
public const long MAXIMUM_RANGE_MAGNITUDE = int.MaxValue + (long)1; // or 1L
Путем литья хотя бы одного из операндов в long
Причина, по которой вы получаете ошибка указана в спецификациях C #.
См. раздел C # Specification Section 4.1.5 (Integral types)
Для двоичных файлов +, -, *, /,%, & amp; , ^, |, ==,! =,>, & lt ;,> = и & lt; = операторы, операнды преобразуются в тип T, где T является первым из int, uint, long и ulong, который может полностью представляют все возможные значения обоих операндов. Затем операция выполняется с использованием точности типа T, а типом результата является T (или bool для реляционных операторов). Недопустимо, чтобы один операнд имел длинный тип, а другой - тип ulong с бинарными операторами.
blockquote>В вашем случае, поскольку оба операнда сложения могут быть представлены в
int
, поэтому вычисление выполняется в целочисленном типе. Явное литье одного из операндов вlong
приведет к результатуlong
и, следовательно, не приведет к ошибке переполнения.
Если вы передаете подписку новому клиенту Azure AD, все назначения ролей в управлении доступом на основе ролей (RBAC) будут окончательно удалены из исходного клиента и не будут перенесены в целевой клиент.
113 меняются арендаторы
Does everything transfer? Including resource groups, VMs, disks, and other running services?
All your resources like VMs, disks, and websites transfer to the new owner. However, any administrator roles and Role-based Access Control (RBAC) policies you've set up do not transfer across different directories. Also, app registrations and other tenant-specific services don't transfer along.