为什么字符串和对象的别名是小写的?
本文关键字:别名 对象 为什么 字符串 | 更新日期: 2023-09-27 17:54:11
以下是c#中的别名列表(c#中String和String的区别是什么?):
object: System.Object
string: System.String
bool: System.Boolean
byte: System.Byte
sbyte: System.SByte
short: System.Int16
ushort: System.UInt16
int: System.Int32
uint: System.UInt32
long: System.Int64
ulong: System.UInt64
float: System.Single
double: System.Double
decimal: System.Decimal
char: System.Char
我可以看到bool
到char
是小写别名,因为它们是基本类型。
object和string既然是复杂类型,为什么不大写?这是开发人员的疏忽,还是它们是小写的必要原因?或者这是一个固执己见的问题?
你最终得到的东西像string.Format()
而不是String.Format()
,这只是看起来时髦,让我认为string
是一个变量。
因为所有关键字(保留标识符)都是小写的
在c#中,没有"基本类型"answers"复杂类型"。其中有class
和struct
(分别是引用类型和值类型)。两者都可以包含方法(例如char.IsDigit('a')
)。所以你的反对是站不住脚的。但仍然有一个问题:为什么?
我不确定是否有一个很好的来源,但我认为小写别名是为了匹配其他c#关键字,这些关键字本身是基于C/c++关键字建模的。
关于你最后的评论:
你最终得到像
string.Format()
而不是String.Format()
这样的东西,这看起来很时髦,让我觉得string是一个变量。
在c# 6中,这变成了一个有争议的问题,因为你可以这样做:
using static System.String;
...
var x = Format(...);
或者更进一步,您可以完全放弃string.Format
而使用$
。
答案很简单。如果您想像使用类一样使用它,请使用String
,如果您想像使用关键字一样使用它,请使用string
。开发人员希望让我们感觉我们正在使用原始类型。因为在c#中没有什么是原始的