c#中string和System.String的区别

 在c#编写程序时,我们用string和String都可以,但是他们到底什么区别呢?

1基本类型和类的区别

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

2c#和.net的关系

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

3浅析string和System.String

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提供的类库完成一切嘛.嘻嘻嘻

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值