如何以及何时在 C# 中使用 :short?
How and when to use :short in C#?
我想知道什么时候在 C# 中使用 :short
?
请帮助我想用它代替 int
。
使用 short
是好主意还是坏主意?
您很少需要使用 short
,我认为考虑使用它 "bad" 是合理的,除非有令人信服的使用它的理由。
int
在现代 CPU 上的性能通常优于 short
。
例如,您可能需要在 struct
中使用 short
来与遗留的非托管代码进行互操作。
使用正确的类型是节省内存的最佳解决方案,因为 short 有 16 位大小,int 有 32 位大小。
short
- 又名 Int16
- 有一些非常真实但有限的用途。
示例场景:
- 当输入值限制为 16 位,并且您不想违反不变量(可能是因为它映射到 16 位的数据库列 -
smallint
in SQL服务器,例如)
- 出于类似原因声明
enum
即 : short
- 因为您要实现的算法需要 16 位环绕行为 -
CRC-16
,例如
- 当你正在编写一个
struct
需要映射非常具体的配置的显式布局时(通常与 C/C++ 映射相关)
不寻常,但绝不意外。同样:byte
、sbyte
、ushort
、uint
、long
、ulong
等
int
是一个很好的默认值,但绝不是唯一的选择。
我想知道什么时候在 C# 中使用 :short
?
请帮助我想用它代替 int
。
使用 short
是好主意还是坏主意?
您很少需要使用 short
,我认为考虑使用它 "bad" 是合理的,除非有令人信服的使用它的理由。
int
在现代 CPU 上的性能通常优于 short
。
例如,您可能需要在 struct
中使用 short
来与遗留的非托管代码进行互操作。
使用正确的类型是节省内存的最佳解决方案,因为 short 有 16 位大小,int 有 32 位大小。
short
- 又名 Int16
- 有一些非常真实但有限的用途。
示例场景:
- 当输入值限制为 16 位,并且您不想违反不变量(可能是因为它映射到 16 位的数据库列 -
smallint
in SQL服务器,例如) - 出于类似原因声明
enum
即: short
- 因为您要实现的算法需要 16 位环绕行为 -
CRC-16
,例如 - 当你正在编写一个
struct
需要映射非常具体的配置的显式布局时(通常与 C/C++ 映射相关)
不寻常,但绝不意外。同样:byte
、sbyte
、ushort
、uint
、long
、ulong
等
int
是一个很好的默认值,但绝不是唯一的选择。