.NET 中 String 和 string 的区别

本文深入解析.NET环境与C#编程中的数据类型概念,重点解释System.String与string的关联,并阐述引用类型与值类型的区别,通过实例说明object与其他类型之间的使用差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

全文完.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值