我找到了一些关于这个问题的线索.大多数人似乎倾向于在他们的c#代码中使用int,即使一个字节或一个smallint处理数据,除非它是一个移动应用程序.我不明白为什么.将C#数据类型定义为数据存储解决方案中的相同数据类型是否更有意义?
我的前提:如果我使用的是类型化的数据集,Linq2SQL类,POCO,无论如何我都会遇到编译器数据类型转换问题,如果我不保持我的数据类型在我的层之间保持同步.我真的不喜欢一直在做System.Convert,因为在c#代码中使用int更容易.我总是使用任何最小的数据类型来处理数据库和代码中的数据,以保持我的数据库接口干净.所以我敢打赌,75%的C#代码使用byte或short而不是int,因为这就是数据库中的内容.
可能性:这是否意味着大多数只为代码中的所有东西使用int的人也使用int数据类型作为他们的sql存储数据类型,并且可能不太关心他们的数据库的整体大小,或者他们是否在适当的情况下在代码中执行system.convert?
为什么我关心:我一直在努力工作,我只想熟悉最佳实践和标准编码惯例.
有人告诉我,只要内存大小不是一个大问题,最好使用int而不是字节或短,因为它实际上更容易处理一个int(CPU需要做额外的东西)使用字节和短路).在C#中这是真的吗?
我试图从Tiled实用程序的地图格式文档中找出这段代码的目的.
const int gid = data[i] |
data[i + 1] << 8 |
data[i + 2] << 16 |
data[i + 3] << 24;
Run Code Online (Sandbox Code Playgroud)
看起来有一些"or-ing"和位移,但我不知道这是什么目的,在使用平铺程序的数据的情况下.