簡體   English   中英

int(Int32)被認為是.NET中的對象還是原語(不是int?)?

[英]Is int (Int32) considered an object in .NET or a primitive (not int?)?

int(aka Int32 )是一個對象,還是.NET中的一個原語(我不是在詢問int? )?

我在保存的單詞int上點擊F12並獲得:

public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>

{ ... }

它不是從Object繼承的,是否意味着int是一個原語?

C#中的所有內容都繼承自object ,包括int

來自msdn

Int32是一個表示有符號整數的不可變值類型

引用和值類型都是從最終基類Object派生的。

參考這個MSDN站點有15種類型,其中2個是類(對象和字符串),其余是基元:

bool - System.Boolean
byte - System.Byte
sbyte - System.SByte
char - System.Char
decimal - System.Decimal
double - System.Double
float - System.Single
int - System.Int32
uint - System.UInt32
long - System.Int64
ulong - System.UInt64
object - System.Object
short - System.Int16
ushort - System.UInt16
string - System.String

Int32是一個結構,它類似於一個類型(編譯時)而不是一個對象(運行時)。 所以你不能說“ Int32是一個對象”,但你可以說“ Int32繼承自對象”。

struct是ValueType ,ValueType派生自object。

intInt32以及同義詞,其中Int32更適合於讀者關心位長度的操作(位操作,溢出情況等)

查看C#參考源或從這里: https//msdn.microsoft.com/en-us/library/system.int32.aspx#

原始類型是通過關鍵字標識的類型,因此yes int是基本類型。

原始類型還允許您將其用作文字。

但是,關鍵字標識的基礎類型是System.Int32 ,它不是基本類型。 這是值類型,而不是引用類型(或對象)。

MSDN - “基本類型是通過關鍵字標識的,關鍵字是系統命名空間中預定義類型的別名。基本類型與別名類型完全無法區分:編寫保留字int與編寫System.Int32完全相同。基本類型別名為常規類型,每個基本類型都有成員。例如,Integer具有在System.Int32中聲明的成員。文字可以被視為其相應類型的實例。“

所以基本上intInt32是同義詞; 您可能傾向於使用int ,只需要'整數',當使用Int32時 ,顯式顯示大小,以便將來的維護者知道在適當的情況下放大int是安全的,但是應該注意以相同的方式更改Int32變量。 使用兩者的結果代碼將是相同的,但區別僅在於代碼的可讀性,或者如果您想將其稱為代碼表示。

您可以閱讀Applied .NET Framework編程 - 作者Jeffrey Richter就是使用完整類型名稱的一個很好的例子。 以下是我記得的主要內容:

類型名稱可能因.NET語言而異。 例如,在C#中,長映射到System.Int64,而在C ++中使用托管擴展,長映射到Int32。 由於語言可以在使用.NET時進行混合和匹配,因此無論讀者的首選語言如何,您都可以確保使用顯式類名稱將更加清晰。

暫無
暫無

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

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