现在的位置: 首页 > 综合 > 正文

.NET 中 String 和 string 的区别

2018年04月07日 ⁄ 综合 ⁄ 共 603字 ⁄ 字号 评论关闭

实际上文章的标题本身就不合理,写这样的标题就意味着没有理解String 和 string.

最早我也有疑惑,现在可以说豁然开朗,写出来和大家分享。

 

.NET 和C#是不同的, .NET 是一个编程环境, C#是一种编程语言. .NET 支持 C#, VB.NET, C++ 等多种编程语言,为了让这些语言写的东西能够相互调用,一起运行,所以.NET里有 CTS (common type system), CLR

 

这个概念大家都知道,关键就在这里:

CTS 定义了一系列的数据类型,例如

 

CTS

 

System.Byte

System.Int32

System.Single

System.Double

System.String

System.DateTime

System.Object

 

而C#对CTS的数据类型有一些别名

byte,

int,

float,

double,

string,

n/a

object

 

所以string 实际上是 System.String

既然是别名, 两者就是完全一样的,没有什么区别

但是在C#编程的时候还是写 string 比较好

 

 

引申出来一个问题

System.Object 是 class, System.String, String.Int32,System.DateTime 等都是 Struct, 所以

System.Object 是引用类型, 而其他的都是 值类型

所以 object obj = null; 是可以的,  int value = null; 是不合法的

 

全文完.

抱歉!评论已关闭.