有什么理由在C#中使用byte/short等..

Fin*_*las 7 c# java types

在int类型?

很多代码使用int和double/float.

我知道有一些.NET移动版本,所以字节/短路自成一体,但桌面应用程序有什么意义吗?

当我做C++工作(游戏编程)时,我非常清楚我使用的每种数据类型,尽管我在C#/ Java工作中没有这种感觉.

如果我知道我的循环永远不会超过字节的边界,那么使用一个字节会不会有任何好处?

Ant*_*lev 10

单个byte与a相比long不会在内存方面产生巨大差异,但是当你开始拥有大型数组时,这7个额外的字节将产生很大的不同.

更重要的是,数据类型有助于更好地传达开发人员的意图:当你遇到一个时,你byte length;肯定知道它length的范围是一个byte.


cle*_*tus 8

我认为这个问题是在10多年前,通常的做法是考虑你的变量需要存储什么值,例如,如果你存储一个百分比(0..100),你可能会使用一个字节(-128到127签名或0到255无签名),因为它足够大的工作,因此被视为不那么"浪费".

然而,这些日子不需要这些措施.内存通常不是那么重要,如果它是你可能会被现代计算机击败,无论如何在32位字边界(如果不是64)上对齐.

除非您存储数以千计这些东西的数组,否则这些微优化(现在)是无关紧要的分心.

坦率地说,我不记得上一次我没有使用一个字节用于原始数据以外的其他东西,我想不出上次我使用短片,好吧,什么.