在开始使用 C# 之前,我主要来自 C/C++ 背景。我在 C# 中的第一个项目中所做的其中一件事是创建一个这样的类
class Element{
public uint Size;
public ulong BigThing;
}
然后我对这需要铸造的事实感到羞愧:
int x=MyElement.Size;
一样
int x=5;
uint total=MyElement.Size+x;
为什么语言设计者决定使有符号和无符号整数类型不能隐式转换?为什么在 .Net 库中没有更多地使用无符号类型?例如String.Length
,永远不可能是负数,但它是一个有符号整数。