为什么字符串和对象的别名是小写的?

本文关键字:别名 对象 为什么 字符串 | 更新日期: 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

我可以看到boolchar是小写别名,因为它们是基本类型。

object和string既然是复杂类型,为什么不大写?这是开发人员的疏忽,还是它们是小写的必要原因?或者这是一个固执己见的问题?

你最终得到的东西像string.Format()而不是String.Format(),这只是看起来时髦,让我认为string是一个变量。

为什么字符串和对象的别名是小写的?

因为所有关键字(保留标识符)都是小写的

在c#中,没有"基本类型"answers"复杂类型"。其中有classstruct(分别是引用类型和值类型)。两者都可以包含方法(例如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#中没有什么是原始的