`

.NET 中 String 和 string 的区别

 
阅读更多

实际上文章的标题本身就不合理,写这样的标题就意味着没有理解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; 是不合法的

全文完.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics