Int64 結構

定義

``public value class Int64 : IComparable, IComparable<long>, IConvertible, IEquatable<long>, IFormattable``
``````[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct Int64 : IComparable, IComparable<long>, IConvertible, IEquatable<long>, IFormattable``````
``````type int64 = struct
interface IFormattable
interface IConvertible``````
``````Public Structure Int64
Implements IComparable, IComparable(Of Long), IConvertible, IEquatable(Of Long), IFormattable``````

備註

Int64 是一個不可變的實值型別，代表帶正負號的整數，其值的範圍從負9223372036854775808（由 Int64.MinValue 常數表示）到正9223372036854775807（以 Int64.MaxValue 常數表示）。Int64 is an immutable value type that represents signed integers with values that range from negative 9,223,372,036,854,775,808 (which is represented by the Int64.MinValue constant) through positive 9,223,372,036,854,775,807 (which is represented by the Int64.MaxValue constant. .NET Framework 也包含不帶正負號的64位整數值型別，UInt64，其代表的值範圍從0到18446744073709551615。The .NET Framework also includes an unsigned 64-bit integer value type, UInt64, which represents values that range from 0 to 18,446,744,073,709,551,615.

具現化 Int64 值Instantiating an Int64 Value

• 您可以宣告 Int64 變數，並為其指派在 Int64 資料類型範圍內的常值整數值。You can declare an Int64 variable and assign it a literal integer value that is within the range of the Int64 data type. 下列範例會宣告兩個 Int64 變數，並以這種方式指派值給它們。The following example declares two Int64 variables and assigns them values in this way.

``````long number1 = -64301728;
long number2 = 255486129307;
``````
``````Dim number1 As Long = -64301728
Dim number2 As Long = 255486129307
``````
• 您可以指派其範圍是 Int64 類型子集的整數類資料類型的值。You can assign the value of an integral type whose range is a subset of the Int64 type. 這是擴輾轉換，不需要中C#的轉換運算子或 Visual Basic 中的轉換方法。This is a widening conversion that does not require a cast operator in C# or a conversion method in Visual Basic.

``````sbyte value1 = 124;
short value2 = 1618;
int value3 = Int32.MaxValue;

long number1 = value1;
long number2 = value2;
long number3 = value3;
``````
``````Dim value1 As SByte = 124
Dim value2 As Int16 = 1618
Dim value3 As Int32 = Int32.MaxValue

Dim number1 As Long = value1
Dim number2 As Long = value2
Dim number3 As Long = value3
``````
• 您可以指派數數值型別的值，其範圍超出 Int64 類型的範圍。You can assign the value of a numeric type whose range exceeds that of the Int64 type. 這是縮小轉換，因此如果 `Option Strict` 是 on，則需要C#在中使用 cast 運算子，並在 Visual Basic 中使用轉換方法。This is a narrowing conversion, so it requires a cast operator in C# and a conversion method in Visual Basic if `Option Strict` is on. 如果數值是包含小陣列件的 SingleDoubleDecimal 值，則處理其小數部分取決於執行轉換的編譯器。If the numeric value is a Single, Double, or Decimal value that includes a fractional component, the handling of its fractional part depends on the compiler performing the conversion. 下列範例會執行縮小轉換，將數個數值指派給 Int64 變數。The following example performs narrowing conversions to assign several numeric values to Int64 variables.

``````ulong ulNumber = 163245617943825;
try {
long number1 = (long) ulNumber;
Console.WriteLine(number1);
}
catch (OverflowException) {
Console.WriteLine("{0} is out of range of an Int64.", ulNumber);
}

double dbl2 = 35901.997;
try {
long number2 = (long) dbl2;
Console.WriteLine(number2);
}
catch (OverflowException) {
Console.WriteLine("{0} is out of range of an Int64.", dbl2);
}

BigInteger bigNumber = (BigInteger) 1.63201978555e30;
try {
long number3 = (long) bigNumber;
Console.WriteLine(number3);
}
catch (OverflowException) {
Console.WriteLine("{0} is out of range of an Int64.", bigNumber);
}
// The example displays the following output:
//    163245617943825
//    35902
//    1,632,019,785,549,999,969,612,091,883,520 is out of range of an Int64.
``````
``````Dim ulNumber As ULong = 163245617943825
Try
Dim number1 As Long = CLng(ulNumber)
Console.WriteLine(number1)
Catch e As OverflowException
Console.WriteLine("{0} is out of range of an Int64.", ulNumber)
End Try

Dim dbl2 As Double = 35901.997
Try
Dim number2 As Long = CLng(dbl2)
Console.WriteLine(number2)
Catch e As OverflowException
Console.WriteLine("{0} is out of range of an Int64.", dbl2)
End Try

Dim bigNumber As BigInteger = 1.63201978555e30
Try
Dim number3 As Long = CLng(bigNumber)
Console.WriteLine(number3)
Catch e As OverflowException
Console.WriteLine("{0:N0} is out of range of an Int64.", bigNumber)
End Try
' The example displays the following output:
'    163245617943825
'    35902
'    1,632,019,785,549,999,969,612,091,883,520 is out of range of an Int64.
``````
• 您可以呼叫 Convert 類別的方法，將任何支援的型別轉換成 Int64 值。You can call a method of the Convert class to convert any supported type to an Int64 value. 這是可能的，因為 Int64 支援 IConvertible 介面。This is possible because Int64 supports the IConvertible interface. 下列範例說明如何將 Decimal 值陣列轉換成 Int64 值。The following example illustrates the conversion of an array of Decimal values to Int64 values.

``````decimal[] values= { Decimal.MinValue, -1034.23m, -12m, 0m, 147m,
199.55m, 9214.16m, Decimal.MaxValue };
long result;

foreach (decimal value in values)
{
try {
result = Convert.ToInt64(value);
Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
value.GetType().Name, value,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("{0} is outside the range of the Int64 type.",
value);
}
}
// The example displays the following output:
//    -79228162514264337593543950335 is outside the range of the Int64 type.
//    Converted the Decimal value '-1034.23' to the Int64 value -1034.
//    Converted the Decimal value '-12' to the Int64 value -12.
//    Converted the Decimal value '0' to the Int64 value 0.
//    Converted the Decimal value '147' to the Int64 value 147.
//    Converted the Decimal value '199.55' to the Int64 value 200.
//    Converted the Decimal value '9214.16' to the Int64 value 9214.
//    79228162514264337593543950335 is outside the range of the Int64 type.
``````
``````Dim values() As Decimal = { Decimal.MinValue, -1034.23d, -12d, 0d, 147d, _
199.55d, 9214.16d, Decimal.MaxValue }
Dim result As Long

For Each value As Decimal In values
Try
result = Convert.ToInt64(value)
Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
value.GetType().Name, value, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("{0} is outside the range of the Int64 type.", _
value)
End Try
Next
' The example displays the following output:
'    -79228162514264337593543950335 is outside the range of the Int64 type.
'    Converted the Decimal value '-1034.23' to the Int64 value -1034.
'    Converted the Decimal value '-12' to the Int64 value -12.
'    Converted the Decimal value '0' to the Int64 value 0.
'    Converted the Decimal value '147' to the Int64 value 147.
'    Converted the Decimal value '199.55' to the Int64 value 200.
'    Converted the Decimal value '9214.16' to the Int64 value 9214.
'    79228162514264337593543950335 is outside the range of the Int64 type.
``````
• 您可以呼叫 ParseTryParse 方法，將 Int64 值的字串表示轉換成 Int64You can call the Parse or TryParse method to convert the string representation of an Int64 value to an Int64. 字串可以包含十進位或十六進位數位。The string can contain either decimal or hexadecimal digits. 下列範例說明使用十進位和十六進位字串的剖析作業。The following example illustrates the parse operation by using both a decimal and a hexadecimal string.

``````string string1 = "244681903147";
try {
long number1 = Int64.Parse(string1);
Console.WriteLine(number1);
}
catch (OverflowException) {
Console.WriteLine("'{0}' is out of range of a 64-bit integer.", string1);
}
catch (FormatException) {
Console.WriteLine("The format of '{0}' is invalid.", string1);
}

string string2 = "F9A3CFF0A";
try {
long number2 = Int64.Parse(string2,
System.Globalization.NumberStyles.HexNumber);
Console.WriteLine(number2);
}
catch (OverflowException) {
Console.WriteLine("'{0}' is out of range of a 64-bit integer.", string2);
}
catch (FormatException) {
Console.WriteLine("The format of '{0}' is invalid.", string2);
}
// The example displays the following output:
//    244681903147
//    67012198154
``````
``````Dim string1 As String = "244681903147"
Try
Dim number1 As Long = Int64.Parse(string1)
Console.WriteLine(number1)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of a 64-bit integer.", string1)
Catch e As FormatException
Console.WriteLine("The format of '{0}' is invalid.", string1)
End Try

Dim string2 As String = "F9A3CFF0A"
Try
Dim number2 As Long = Int64.Parse(string2,
System.Globalization.NumberStyles.HexNumber)
Console.WriteLine(number2)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of a 64-bit integer.", string2)
Catch e As FormatException
Console.WriteLine("The format of '{0}' is invalid.", string2)
End Try
' The example displays the following output:
'    244681903147
'    67012198154
``````

執行 Int64 值的作業Performing Operations on Int64 Values

Int64 類型支援標準的數學運算，例如加法、減法、除法、乘法、負和一元否定。The Int64 type supports standard mathematical operations such as addition, subtraction, division, multiplication, negation, and unary negation. 就像其他整數類型一樣，Int64 類型也支援位 `AND``OR``XOR`、左移和右移位運算子。Like the other integral types, the Int64 type also supports the bitwise `AND`, `OR`, `XOR`, left shift, and right shift operators.

將 Int64 表示為字串Representing an Int64 as a String

Int64 類型提供標準和自訂數值格式字串的完整支援。The Int64 type provides full support for standard and custom numeric format strings. （如需詳細資訊，請參閱格式化類型標準數值格式字串自訂數值格式字串。）(For more information, see Formatting Types, Standard Numeric Format Strings, and Custom Numeric Format Strings.)

``````long[] numbers = { -1403, 0, 169, 1483104 };
foreach (var number in numbers) {
// Display value using default formatting.
Console.Write("{0,-8}  -->   ", number.ToString());
// Display value with 3 digits and leading zeros.
Console.Write("{0,8:D3}", number);
// Display value with 1 decimal digit.
Console.Write("{0,13:N1}", number);
Console.Write("{0,18:X2}", number);
// Display value with eight hexadecimal digits.
Console.WriteLine("{0,18:X8}", number);
}
// The example displays the following output:
//    -1403     -->      -1403     -1,403.0  FFFFFFFFFFFFFA85  FFFFFFFFFFFFFA85
//    0         -->        000          0.0                00          00000000
//    169       -->        169        169.0                A9          000000A9
//    1483104   -->    1483104  1,483,104.0            16A160          0016A160
``````
``````Dim numbers() As Long = { -1403, 0, 169, 1483104 }
For Each number In numbers
' Display value using default formatting.
Console.Write("{0,-8}  -->   ", number.ToString())
' Display value with 3 digits and leading zeros.
Console.Write("{0,8:D3}", number)
' Display value with 1 decimal digit.
Console.Write("{0,13:N1}", number)
Console.Write("{0,18:X2}", number)
' Display value with eight hexadecimal digits.
Console.WriteLine("{0,18:X8}", number)
Next
' The example displays the following output:
'    -1403     -->      -1403     -1,403.0  FFFFFFFFFFFFFA85  FFFFFFFFFFFFFA85
'    0         -->        000          0.0                00          00000000
'    169       -->        169        169.0                A9          000000A9
'    1483104   -->    1483104  1,483,104.0            16A160          0016A160
``````

``````long[] numbers = { -146, 11043, 2781913 };
foreach (var number in numbers) {
Console.WriteLine("{0} (Base 10):", number);
Console.WriteLine("   Binary:  {0}", Convert.ToString(number, 2));
Console.WriteLine("   Octal:   {0}", Convert.ToString(number, 8));
Console.WriteLine("   Hex:     {0}\n", Convert.ToString(number, 16));
}
// The example displays the following output:
//    -146 (Base 10):
//       Binary:  1111111111111111111111111111111111111111111111111111111101101110
//       Octal:   1777777777777777777556
//       Hex:     ffffffffffffff6e
//
//    11043 (Base 10):
//       Binary:  10101100100011
//       Octal:   25443
//       Hex:     2b23
//
//    2781913 (Base 10):
//       Binary:  1010100111001011011001
//       Octal:   12471331
//       Hex:     2a72d9
``````
``````Dim numbers() As Long = { -146, 11043, 2781913 }
For Each number In numbers
Console.WriteLine("{0} (Base 10):", number)
Console.WriteLine("   Binary:  {0}", Convert.ToString(number, 2))
Console.WriteLine("   Octal:   {0}", Convert.ToString(number, 8))
Console.WriteLine("   Hex:     {0}", Convert.ToString(number, 16))
Console.WriteLine()
Next
' The example displays the following output:
'    -146 (Base 10):
'       Binary:  1111111111111111111111111111111111111111111111111111111101101110
'       Octal:   1777777777777777777556
'       Hex:     ffffffffffffff6e
'
'    11043 (Base 10):
'       Binary:  10101100100011
'       Octal:   25443
'       Hex:     2b23
'
'    2781913 (Base 10):
'       Binary:  1010100111001011011001
'       Octal:   12471331
'       Hex:     2a72d9
``````

欄位

 代表 `Int64` 最大的可能值。Represents the largest possible value of an `Int64`. 這個欄位是常數。This field is constant. 代表 `Int64` 的最小可能值。Represents the smallest possible value of an `Int64`. 這個欄位是常數。This field is constant.

方法

 將這個執行個體與指定的 64 元帶正負號的整數相比較，並傳回它們的相對值指示。Compares this instance to a specified 64-bit signed integer and returns an indication of their relative values. 將這個執行個體與指定的物件相比較，並傳回它們的相對值指示。Compares this instance to a specified object and returns an indication of their relative values. 傳回值，表示這個執行個體是否等於指定的 Int64 值。Returns a value indicating whether this instance is equal to a specified Int64 value. 傳回值，指出此執行個體是否等於指定的物件。Returns a value indicating whether this instance is equal to a specified object. 傳回這個執行個體的雜湊碼。Returns the hash code for this instance. 傳回實值類型 TypeCode 的 Int64。Returns the TypeCode for value type Int64. 將數字的範圍表示 (使用指定樣式和特定文化特性格式) 轉換為其對等 64 位元帶正負號的整數。Converts the span representation of a number in a specified style and culture-specific format to its 64-bit signed integer equivalent. 將數字的字串表示轉換成它的對等 64 位元帶正負號的整數。Converts the string representation of a number to its 64-bit signed integer equivalent. 將指定特定文化特性格式之數字的字串表示轉換成它的對等 64 位元帶正負號的整數。Converts the string representation of a number in a specified culture-specific format to its 64-bit signed integer equivalent. 將指定樣式之數字的字串表示轉換成它的對等 64 位元帶正負號的整數。Converts the string representation of a number in a specified style to its 64-bit signed integer equivalent. 將指定樣式和特定文化特性格式之數字的字串表示轉換成它的對等 64 位元帶正負號的整數。Converts the string representation of a number in a specified style and culture-specific format to its 64-bit signed integer equivalent. 將這個執行個體的數值轉換為它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation. 使用指定的特定文化特性格式資訊，將這個執行個體的數值轉換成它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation using the specified culture-specific format information. 使用指定格式，將這個執行個體的數值轉換成它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation, using the specified format. 使用指定的格式和特定文化特性格式資訊，將這個執行個體的數值轉換成它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation using the specified format and culture-specific format information. 嘗試將目前長整數執行個體的值格式化為所提供的字元範圍。Tries to format the value of the current long number instance into the provided span of characters. 將數字的範圍表示轉換為其對等 64 位元帶正負號的整數。Converts the span representation of a number to its 64-bit signed integer equivalent. 傳回值，該值指出轉換成功或失敗。A return value indicates whether the conversion succeeded or failed. 將數字的範圍表示 (使用指定樣式和特定文化特性格式) 轉換為其對等 64 位元帶正負號的整數。Converts the span representation of a number in a specified style and culture-specific format to its 64-bit signed integer equivalent. 傳回值，該值指出轉換成功或失敗。A return value indicates whether the conversion succeeded or failed. 將數字的字串表示轉換成它的對等 64 位元帶正負號的整數。Converts the string representation of a number to its 64-bit signed integer equivalent. 傳回值，該值指出轉換成功或失敗。A return value indicates whether the conversion succeeded or failed. 將指定樣式和特定文化特性格式之數字的字串表示轉換成它的對等 64 位元帶正負號的整數。Converts the string representation of a number in a specified style and culture-specific format to its 64-bit signed integer equivalent. 傳回值，該值指出轉換成功或失敗。A return value indicates whether the conversion succeeded or failed.

明確介面實作

 將這個執行個體與指定的物件相比較，並傳回它們的相對值指示。Compares this instance to a specified object and returns an indication of their relative values. 傳回實值類型 TypeCode 的 Int64。Returns the TypeCode for value type Int64. 如需這個成員的說明，請參閱 ToBoolean(IFormatProvider)。For a description of this member, see ToBoolean(IFormatProvider). 如需這個成員的說明，請參閱 ToByte(IFormatProvider)。For a description of this member, see ToByte(IFormatProvider). 如需這個成員的說明，請參閱 ToChar(IFormatProvider)。For a description of this member, see ToChar(IFormatProvider). 不支援這個轉換。This conversion is not supported. 嘗試使用這個方法會擲回 InvalidCastException。Attempting to use this method throws an InvalidCastException. 如需這個成員的說明，請參閱 ToDecimal(IFormatProvider)。For a description of this member, see ToDecimal(IFormatProvider). 如需這個成員的說明，請參閱 ToDouble(IFormatProvider)。For a description of this member, see ToDouble(IFormatProvider). 如需這個成員的說明，請參閱 ToInt16(IFormatProvider)。For a description of this member, see ToInt16(IFormatProvider). 如需這個成員的說明，請參閱 ToInt32(IFormatProvider)。For a description of this member, see ToInt32(IFormatProvider). 如需這個成員的說明，請參閱 ToInt64(IFormatProvider)。For a description of this member, see ToInt64(IFormatProvider). 如需這個成員的說明，請參閱 ToSByte(IFormatProvider)。For a description of this member, see ToSByte(IFormatProvider). 如需這個成員的說明，請參閱 ToSingle(IFormatProvider)。For a description of this member, see ToSingle(IFormatProvider). 如需這個成員的說明，請參閱 ToType(Type, IFormatProvider)。For a description of this member, see ToType(Type, IFormatProvider). 如需這個成員的說明，請參閱 ToUInt16(IFormatProvider)。For a description of this member, see ToUInt16(IFormatProvider). 如需這個成員的說明，請參閱 ToUInt32(IFormatProvider)。For a description of this member, see ToUInt32(IFormatProvider). 如需這個成員的說明，請參閱 ToUInt64(IFormatProvider)。For a description of this member, see ToUInt64(IFormatProvider).