无法在 C# 中声明任何带符号的整数类型

Cannot declare any signed Integer types in C#

我在 Visual Studio 2019 年开发一个 ASP.NET 应用程序。我 运行 遇到了一个我以前从未遇到过的 C# 问题。我似乎无法声明除 UInt64 以外的任何整数类型。

尝试声明 Int64 或 long 时出错,因为它说我正在尝试将 UInt64(或 ulong)转换为其中一种类型。

具体错误如下(显示的Azure租户id是虚拟值,不要惊慌):

Int64 tenantInt = 11132432026456784806;

给出如下错误

Error   CS0266  Cannot implicitly convert type 'ulong' to 'long'. An explicit conversion exists (are you missing a cast?)

然后是下面这行代码

long TenantID = -11132432026456784806;

给出如下错误

Error   CS0023  Operator '-' cannot be applied to operand of type 'ulong'

这是一张完全相同的错误图片: HERE

我以前在 C# 中工作时从未遇到过这种情况。通常这些声明工作正常。 Visual Studio有什么问题吗?它一直将数字读取为 UInt64,并尝试使用 (Int64) 或 (long) 转换它们时遇到另一个错误,即 UInt64(或 ulong)无法转换为这些类型。

你必须使用“ulong”因为支持18.446.744.073.709.551.615。

关注参考:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/integral-numeric-types

Kalten 是正确的。我尝试分配的数字对于 Int64 来说太大了而且太长了。本质上,我得到这个 API 的人故意把数字弄得太大,所以这条线会抛出一个错误,所以我会看到这条线并意识到我需要用我自己的 ID 替换它。