为什么C#的格式说明符是字符串?

问题描述 投票:4回答:1

为什么格式说明符指定类型为string的C#中的基本类型,而不是不太容易出错且更易读的类型,例如enum?尽管我现在知道许多说明符,但我几乎总是必须使用double-check the documentation来避免错误或怪异的边缘情况。 enum类型和值可以轻松地在其注释中提供该信息。

C#的1.0版已在2002中发布,并且object.ToString()自C#1.1起一直是一个功能。这是一个旧功能,我了解开发过程和目标现在看起来不一定与那时相同。但是,我无法理解通过使用诸如枚举或类之类的语言功能而不是字符串来使用类型安全,定义明确且易于记录的行为的原因。

当然,大多数较老的语言(例如C)都使用string类型的格式说明符,所以也许只是按照惯例?如果是这样,他们为什么认为有必要遵守该公约? (此外,C使用%字符作为说明符,因此C#已经制定了自己的约定)

c# string-formatting language-design
1个回答
0
投票

这是因为他们期望格式在不同的文化,国家,系统,用户(某些系统允许用户选择自己喜欢的格式)中相差很大。最后,我们将为所有可能性提供一个非常庞大的枚举。而且,.net框架不能只维护大量格式。

© www.soinside.com 2019 - 2024. All rights reserved.