如何及何时使用:短用C#?

如何及何时使用:短用C#?,c#,.net,int,short,C#,.net,Int,Short,我想知道什么时候在C#中使用:short 请帮助我使用它而不是int 使用短/代码>一个好的或坏的主意? 你很少需要使用短代码>代码,我认为合理的使用它是“坏的”,除非有一个令人信服的理由使用它。 在现代CPU上,int通常比short性能更好 例如,您可能需要在用于与旧式非托管代码互操作的结构中使用short 使用适当的类型是节省内存的最佳解决方案,因为short的大小为16位,int的大小为32位。short-akaInt16-有一些非常实际但有限的用途 示例场景: 当输入值限制为16位时

我想知道什么时候在C#中使用:
short

请帮助我使用它而不是
int


使用<代码>短/代码>一个好的或坏的主意?

你很少需要使用<代码>短代码>代码,我认为合理的使用它是“坏的”,除非有一个令人信服的理由使用它。 在现代CPU上,
int
通常比
short
性能更好


例如,您可能需要在用于与旧式非托管代码互操作的
结构中使用
short

使用适当的类型是节省内存的最佳解决方案,因为short的大小为16位,int的大小为32位。

short
-aka
Int16
-有一些非常实际但有限的用途

示例场景:

  • 当输入值限制为16位时,您不希望违反不变量(可能是因为它映射到SQL Server中的16位数据库列-
    smallint
  • 出于类似的原因声明一个
    枚举
    :short
  • 因为您正在实现一种需要16位包装行为的算法,例如,
    CRC-16
  • 当您编写带有显式布局的
    结构时,需要映射非常特定的配置(通常与C/C++映射相关)
  • 这是不寻常的,但并非出乎意料。类似地:
    byte
    sbyte
    ushort
    uint
    long
    ulong
    ,等等


    int
    是一个很好的默认值,但它绝不是唯一的选项。

    不是链接问题的重复:这个问题是关于C的,而那个问题是关于C的。当你了解两者之间的差异时,你就会明白何时使用一个,何时使用另一个。这同样适用于long、uint、ushort、ulong、decimal、double、float等…如果您希望使用的数字适合给定的值范围。这样你就可以安全地使用short。但这适用于所有其他基本值类型——范围很广,并且可以在谷歌上轻松搜索,这个问题应该是clsoedIt也意味着内存节省。你必须有一个真正令人信服的理由来决定选择最小的数字类型,以尽可能减少内存压力,在一般情况下,您应该坚持使用本机宽度类型(32位整数),因为这些类型的性能通常更好。当然,当应用程序有巨大的内存需求并利用几乎整个计算机的内存时,这种情况一定会发生。我编辑了我的答案(在一般情况下,您应该坚持使用32位整数)。感谢您的想法和建议。公共枚举运行模式:short{DebugRun=1,SingleRun=2,ContinuousRun=3,specific run=4,Timer=5,QINQContinuousRun=6}这是正确的吗?@Jagath确实声明了
    short
    (不是
    int
    )类型的枚举-如果这是您要问的问题,我已经使用了:short而不是int,这是正确的还是将来会抛出任何错误?@Jagath“right”是非常上下文相关的;使用基于
    short
    的枚举肯定没有什么错,在正确的场景中,这是非常理想的。我对你的情况一无所知,所以我不能评论它是否“正确”,谢谢你的建议和宝贵的想法。非常感谢……)