C# int32、int64的别名

C# int32、int64的别名,c#,C#,如果变量被声明为int,我将得到编译错误,从int到long的转换是requreid 为什么我在使用int时会出现这个错误 别名是什么Int32和Int64 何时使用Int32和Int64,是否取决于操作系统 Int32对应于int,Int64对应于long。对于大多数一般用途,您可以使用32位整数;但是,如果需要非常大的数字,请使用long整数(64位) 当您将Int64.MaxValue分配给int时,您将long(Int64)隐式转换为int(Int32),但该转换无效。此外,该值太大,无

如果变量被声明为int,我将得到编译错误,从int到long的转换是requreid

  • 为什么我在使用int时会出现这个错误
  • 别名是什么
    Int32
    Int64
  • 何时使用
    Int32
    Int64
    ,是否取决于操作系统

  • Int32
    对应于
    int
    Int64
    对应于
    long
    。对于大多数一般用途,您可以使用32位整数;但是,如果需要非常大的数字,请使用
    long
    整数(64位)


    当您将
    Int64.MaxValue
    分配给
    int
    时,您将
    long
    Int64
    )隐式转换为
    int
    Int32
    ),但该转换无效。此外,该值太大,无法放入32位整数。

    Int32
    对应于
    int
    Int64
    对应于
    long
    。对于大多数一般用途,您可以使用32位整数;但是,如果需要非常大的数字,请使用
    long
    整数(64位)

    class Program
    {
       static void Main(string[] args)
       {
           Int64 a = Int64.MaxValue;
           Int64 b= Int64.MinValue;
    
           try
           {
              checked
              {
                 Int64 m = a * b;
    
              }
           }
           catch (OverflowException ex)
           {
              Console.WriteLine("over flow exception");
              Console.Read();
           }
       }
    }
    
    当您将
    Int64.MaxValue
    分配给
    int
    时,您将
    long
    Int64
    )隐式转换为
    int
    Int32
    ),但该转换无效。此外,该值太大,无法放入32位整数中

    class Program
    {
       static void Main(string[] args)
       {
           Int64 a = Int64.MaxValue;
           Int64 b= Int64.MinValue;
    
           try
           {
              checked
              {
                 Int64 m = a * b;
    
              }
           }
           catch (OverflowException ex)
           {
              Console.WriteLine("over flow exception");
              Console.Read();
           }
       }
    }
    
    CTS实现保证这些类型在任何CPU/OS上都是可移植的


    CTS实现保证类型在任何CPU/O上都是可移植的。

    int是int32,long是int64


    int是int32,long是int64

    别名Int32和Int64是什么

    Int32
    的别名是
    int
    Int64
    的别名是
    long

    何时使用Int32和Int64,是否取决于操作系统

    使用Int32还是Int64取决于应用程序(范围、符号要求)。不,它不依赖于操作系统<就.NET framework而言,code>int将始终是4字节长的Int32。还请注意,别名是编译器的一项功能。所以,<>代码>长< /C>在C语言编程时是有意义的,但是考虑VB.NET开发人员,他们不需要像“代码>长< /代码>之类的属性名称对它们没有意义。

    别名Int32和Int64是什么

    Int32
    的别名是
    int
    Int64
    的别名是
    long

    何时使用Int32和Int64,是否取决于操作系统

    使用Int32还是Int64取决于应用程序(范围、符号要求)。不,它不依赖于操作系统<就.NET framework而言,code>int将始终是4字节长的Int32。还请注意,别名是编译器的一项功能。因此,<>代码>长< /C>在C语言编程时是有意义的,但是考虑VB.NET开发人员,他们不需要像“代码>长< /代码>之类的属性名称对它们没有意义。

    < P > 1)如果使用It到处都不应该得到这个错误。以下工作很好:

    Int32 = int
    Int64 = long
    
    2)
    Int32
    使用
    int
    别名,
    Int64
    使用
    long
    别名

    3) 这不是特定于平台的,而是由C#规范定义的。在所有平台上都是一样的。需要32位整数时使用
    Int32
    (或
    int
    ),需要64位整数时使用
    Int64
    (或
    long
    )。这更多的是一个逻辑/算法决定,而不是一个与平台相关的决定。

    1)如果在任何地方都使用int,就不应该出现此错误。以下工作很好:

    Int32 = int
    Int64 = long
    
    2)
    Int32
    使用
    int
    别名,
    Int64
    使用
    long
    别名


    3) 这不是特定于平台的,而是由C#规范定义的。在所有平台上都是一样的。需要32位整数时使用
    Int32
    (或
    int
    ),需要64位整数时使用
    Int64
    (或
    long
    )。这更多的是一种逻辑/算法决策,而不是与平台相关的决策。

    System.Int32
    System.Int64
    是CLI标准(ECMA-335)定义的类型。它们基本上是32位和64位整数类型的CLR/framework版本,并且保证是可移植的

    有些语言,如C#,为这些类型定义别名——C#定义
    int
    System.Int32
    long
    System.Int64
    相同,因此这些类型也是可移植的


    至于您使用哪种语言(至少是CLR版本还是语言版本),这大体上是一个风格问题,特别是如果您只使用一种语言。我个人喜欢在可能的情况下为CLR类型使用语言指定的别名。

    System.Int32
    System.Int64
    是CLI标准(ECMA-335)定义的类型。它们基本上是32位和64位整数类型的CLR/framework版本,并且保证是可移植的

    有些语言,如C#,为这些类型定义别名——C#定义
    int
    System.Int32
    long
    System.Int64
    相同,因此这些类型也是可移植的


    至于您使用哪种语言(至少是CLR版本还是语言版本),这大体上是一个风格问题,特别是如果您只使用一种语言。我个人更喜欢在可能的情况下为CLR类型使用语言指定的别名。

    程序运行时,我会得到运行时错误。如果make a和b有常数,我将得到编译错误。为什么会这样difference@Raghav:编译器可以帮助处理常量-如果没有常量,则会出现运行时错误。编译器在可能的情况下提供帮助,但不能总是做所有事情。将编译器错误视为“helpf”