类型和类的区别

来源:互联网 发布:淘宝皮鲁sigma是真货么 编辑:程序博客网 时间:2024/04/29 23:11
 

基本类型:在一门语言中,以语法的形式规定下来的.具有某种数据结构和相应特定操作的一个集合.一般会赋予其一个关键字.该关键字在珍整个编译环境中具有特殊含义.不能被自定义的类型使用.
类:只要符合面向对象语法规范的集合.满足封装继承多态三大特性.都能称之为类.

在c#中以语法形式定义出了15种基本类型.也就是有十五个关键字.当使用其中一个关键字的时候,即代表着使用了这个类型.然而c#是定义在中间语言上面的一种语言.而在这门中间语言中.定义了十几个类.这十几个类分别实现了不同的数据结构.c#语言定义的关键字其实就是这十几个类的实例.编译器在编译的时候做了一个映射.其实我们蛮可以不用这几个关键字.而自己手动的new出我们想用的类.这样也省得编译器再麻烦,哈哈哈哈!

string是c#中的类型,
String是.net Framework的类(在c# IDE中不会显示蓝色)
c# string映射为.net Framework的String
如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作
如果使用c#,建议使用string,比较符合规范 string始终代表 System.String(1.x) 或 ::System.String(2.0) ,String只有在前面有using System;的时候并且当前命名空间中没有名为String的类型(class、struct、delegate、enum)的时候才代表System.String string是关键字,String不是,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以


下面是.NET C# VB.NET IL的类型对应表:
----------------------------------------------------------------
NET              C#       VB.NET        IL     值或引用
System.Boolean  bool      Boolean     bool        Value
System.Byte     byte      Byte    unsigned int8   Value
System.Char     char      Char        char        Value
System.DateTime  -         Date        -             Value
System.Decimal decimal    Decimal     -             Value
System.Double   double    Double     float64      Value
System.Int16    short     Short      int16        Value
System.Int32    int       Integer    int32        Value
System.Int64    long       Long      int64        Value
System.Object   object    Object     object     Reference
System.SByte     sbyte     -           int8         Value
System.Single   float     Single      float32      Value
System.String    string    String     string     Reference
System.UInt16    ushort    -      unsigned int16    Value
System.UInt32    uint      -      unsigned int32     Value
System.UInt64    ulong    -       unsigned int64     Value
-----------------------------------------------------------------
从上表可以看到,不仅仅string和String,还有许多类似的类型。有的没有对应的类型,这时使用的就是.NET的,比如说在C#中没有date类型,所以在C#中我们使用.NET 的Date.
因此说.net是完全面向对象的.所有的一切都是用类写成.而c#这门语言则多少有点瑕疵.那几个基本数据类型可是生硬的规定的哦.不能说具有面向对象特性.但我们完全可以抛开这些关键字.利用.net提供的类库完成一切嘛.嘻嘻嘻