簡體   English   中英

無法在 C# 中聲明任何已簽名的 Integer 類型

[英]Cannot declare any signed Integer types in C#

我正在使用 Visual Studio 2019 中的 ASP.NET 應用程序。我遇到了一個我以前從未遇到過 C# 的問題。 我似乎無法聲明除 UInt64 之外的任何 integer 類型。

嘗試聲明 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

在此處輸入圖像描述

卡爾滕是正確的。 我試圖分配的數字對於 Int64 和 long 來說太大了。 從本質上講,我得到這個 API 的人故意使數字太大,所以該行會引發錯誤,所以我會看到該行並意識到我需要用我自己的 ID 替換它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM