c# - 普遍使用 Int64 而不是 int 的缺点 (C#)

标签 c# .net-2.0

我们使用具有版本(NHibernate 所需的日期时间)和 guid(作为键)等属性的基本实体。

它还有一个具有两个功能的 Id (int) 字段。首先与遗留应用程序 key 相关(如果有的话)。其次作为速记代码:例如,有时会基于这些创建文件,使用我们的 guid 键,这些文件看起来又丑又长。我的问题不是关于基本实体的优缺点,而是关于将此 Id 向上输入为 Int64?

它不会影响它在我们的 MS SQL Server 数据库中的存储方式。它会在我们的缓存和内存中产生更多成本吗?真的有那么担心吗?

我有兴趣了解除性能之外的其他缺点。还要考虑到这些值也可能会通过 Web 服务及时暴露给第三方。

另一种方法是处理出现的较大整数的异常,并在派生实体中专门实现它们。缺点是这需要在代码中完成,当我们在生产更大的整数时发现一些情况时我们会怎么做?当然会有输入验证来阻止实际错误,但它可能会限制扩展数据。

最佳答案

如果您的应用在 64 位 CPU 上运行,那么可能根本没有太大区别。

在 32 位 CPU 上,64 位整数将占用更多处理器来执行计算。

还有明显的内存占用。

关于c# - 普遍使用 Int64 而不是 int 的缺点 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/242930/

相关文章:

c# - 将多个列表绑定(bind)到 DataGridView

c# - Mongo C# 驱动 toJson() DateTime

c# - 如果该行项为真,如何使数据网格的一行变为粗体?

c# - 在 LINQ to Objects 中使用 Max() 后如何选择多个值?

c# - MVVM使用命令混淆将更改保存到 View 模型

c# - 确保用字符串中的数字拆分逗号分隔的字符串

c# - .NET 3/4 是否允许对事件进行二进制反序列化?

c# - System.IO.Directory.GetFiles() 可以使用多个搜索字符串进行搜索吗?

c# - Graphics.DrawString 指定文本的不透明度

c# - Web浏览器对话框弹出 block