int(Int32)被认为是.NET中的对象还是原语(不是int?)?

时间:2015-10-20 22:19:17

标签: c# .net int primitive value-type

int(又名Int32)是.NET中的对象还是原语(我不是在询问int?)?

我在保存的单词int上点击F12并得到:

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

{ ... }

它不从Object继承,是否意味着int是原始的?

6 个答案:

答案 0 :(得分:6)

C#中的所有内容都来自object,包括int

来自msdn

  

Int32是一个表示有符号整数的不可变值类型

and

  

引用和值类型都源自最终基础   class Object。

答案 1 :(得分:4)

参考this MSDN site有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

答案 2 :(得分:1)

Int32是一个结构,它类似于一个类型(编译时)而不是一个对象(运行时)。所以你不能说&#34; Int32是一个对象&#34;,但你可以说&#34; Int32继承自对象&#34;。

struct是https://jsbin.com/wegayacede/edit?js,console,ValueType派生自object。

intInt32以及Int32更适合读者关注位长度(位操作,溢出情况等)的操作的同义词

答案 3 :(得分:0)

查看C#参考源或从此处:here

答案 4 :(得分:0)

原始类型是通过关键字标识的类型,因此 int 是基本类型。

原始类型还允许您将其用作文字。

但是,关键字标识的基础类型是 System.Int32 ,它不是基本类型。 这是一种值类型,而不是引用类型(或对象)。

答案 5 :(得分:0)

MSDN - &#34;基元类型通过关键字标识,关键字是系统命名空间中预定义类型的别名。原始类型与其别名类型完全无法区分:编写保留字int与编写System.Int32完全相同。 因为基本类型别名是常规类型,所以每个基本类型都有成员。例如,Integer具有在System.Int32中声明的成员。文字可以被视为相应类型的实例。&#34;

所以基本上 int Int32 是同义词;您可能倾向于使用 int ,只需要一个整数&#39;,当使用 Int32 时,显式显示大小,以便将来的维护人员知道它&如果合适,可以放大 int ,但应该注意以相同的方式更改 Int32 变量。使用两者的结果代码将是相同的,但区别仅在于代码的可读性,或者如果您想将其称为代码表示。

您可以阅读Applied .NET Framework编程 - 作者Jeffrey Richter就是使用完整类型名称的一个很好的例子。以下是我记得的主要内容:

类型名称可能因.NET语言而异。例如,在C#中,长映射到System.Int64,而在C ++中使用托管扩展,长映射到Int32。由于语言可以在使用.NET时进行混合和匹配,因此无论读者的首选语言如何,您都可以确保使用显式类名称将更加清晰。