来个权威的C# 精通者!不知道的别乱讲

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:21:35
有人说int是一个类,int又是个基本数据类型,C#帮助文档说Int32是一个结构,书上又说int是Int32结构的别名--间接说int是个结构。C#帮助文档又写着int字段:public Object int.都学这么久了,int到底是什么东西?是结构?基本数据类型?是类?

两点区别:
1. int 是 C# 语言中的概念, Int32 是 .NET 框架中的概念
2. int 是 C# 语言中的基本数据类型中的一种,按值在内存中存储
Int32 准确来是结构(struct),与之类似的还有 Int16,Int64

int 与 Int32 等之间的关系可以看作是映射关系,因为 .Net 支持多种语言,在这多种语言中声明数据类型的方法不相同
C#: public int count;
VB.NET: Dim count As Integer
但它们最终都会解释成为 IL(中间语言),这时候,原来不同的类型会按照相应的定义解释成相同的结构型

int是C#中的INT32的别称。可以认为结构是一种特别的类,它不存储在堆上,而是存储在堆栈上。int可以直接付值,不需要使用NEW,把这样的结构又称为基本数据类型。

如果说得不对,还请各位见谅。

本质的说,它是一个类。

一个特殊的结构,大家都知道结构类型的数据是存储在栈上的,效率很高,出了作用域马上弹掉,而int类型又是最常用的类型,所以它肯定是个结构类型,结构类型本来就属于基本类型,又称值类型。SYSTEM.INT32 是CLR 提供的,目的是让.net语言互开发兼容,比如vb.net 的integer 对应的也是SYSTEM.INT32 这样VB与C#的代码才可以相互兼容。这就是.NET平台的优点之一。

struct 和 class 都是派生于obj
类和结构是平级的

struct 是一种值类型
而int 就是struct

//这里是int的定义
public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>

基本数据类型:
这个不是概念说法,只是一个比较让大众容易接受的解释
就象说 int是什么?int就是12,3等数字,并不是一种概念