【发布时间】:2017-04-01 14:04:28
【问题描述】:
这个问题与 C# 程序的物理内存有关。正如我们所知,byte 变量消耗 1 个字节的内存,另一方面,int(32 位)变量消耗 4 个字节的内存。那么,当我们需要值可能较小的变量时(例如计数器变量i 来迭代循环 100 次)我们应该在下面的 for 循环中使用哪一个? byte 或 int ?
for(byte i=0; i<100; ++i)
请理性发表您的意见,并分享您宝贵的知识。我会很高兴并感谢你:-)
注意:在这种情况下,我使用 byte 而不是 int。但是我看到很多有经验的程序员使用int,即使期望值小于255。如果我错了,请告诉我。 :-)
【问题讨论】:
-
在我看来,每当我进行循环时,我通常不知道数组大小(现在和将来)有多大,因此使用 int 更安全。比如现在数组大小是255,明天可以变成500。所以你需要改代码重新部署。
-
感谢您的回复... :-)
-
虽然这个问题已经被问了足够多的时间并且有很多重复,但很少看到像“我们知道,字节变量消耗 1 个字节的内存”这样的说法 - 我建议回来该声明由一些权威来源或至少自己看和衡量。显然,帖子中提供的示例将消耗超过一个字节来为字节变量提供空间(可能至少 4 个字节)。还要确保阅读horses by Eric Lippert 以改善您未来的性能问题。