我正在尝试在C#中创建一个代码,其中包含2个表示时间的变量:第一个包含小时,第二个包含分钟。
我的问题很简单 - 我应该为这些变量使用什么数据类型?一方面,我应该使用byte
,因为小时和分钟介于0
和255
之间,但另一方面 - 我已经读过CPU使用{{1}更好地工作}。那么我应该使用哪一个?
以下是我读过的答案,从CPU性能的角度比较int
和int
:Why should I use int instead of a byte or short in C#
感谢您的协助!
答案 0 :(得分:2)
TimeSpan
struct是在.Net中表示时间的标准方式。
但是,您也可以使用int
或byte
来表示秒,分钟等。 byte
的占地面积比int
小,但不应该产生很大的影响。
https://msdn.microsoft.com/en-us/en-en/library/system.timespan(v=vs.110).aspx
答案 1 :(得分:1)
您不需要两个不同的变量。为此,请使用专用的TimeSpan类型。
答案 2 :(得分:1)
这取决于您的系统要求。如果您正在为Windows桌面或服务器开发应用程序,您可能会有大量的RAM。
因此您可以使用System.Int32
,因为现代CPU已针对此类型处理进行了优化。
如果您正在为移动平台或嵌入式设备开发应用程序,则可以限制一定量的RAM,其中限制可以是512Mb或1Gb。因此,如果您没有创建数百万个此类对象,则可以再次使用System.Int32
。
最后,如果要对这些对象进行序列化和反序列化,可以在序列化步骤中将它们转换为System.Byte
。