TimeSpan.GetHashCode Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает хэш-код для данного экземпляра.
public:
override int GetHashCode();
public override int GetHashCode ();
override this.GetHashCode : unit -> int
Public Overrides Function GetHashCode () As Integer
Возвращаемое значение
Хэш-код в виде 32-разрядного целого числа со знаком.
Примеры
В следующем примере создаются хэш-коды нескольких TimeSpan объектов с помощью GetHashCode метода.
// Example for the TimeSpan::GetHashCode( ) method.
using namespace System;
void DisplayHashCode( TimeSpan interval )
{
// Create a hash code and a string representation of
// the TimeSpan parameter.
String^ timeInterval = interval.ToString();
int hashCode = interval.GetHashCode();
// Pad the end of the TimeSpan string with spaces if it
// does not contain milliseconds.
int pIndex = timeInterval->IndexOf( ':' );
pIndex = timeInterval->IndexOf( '.', pIndex );
if ( pIndex < 0 )
timeInterval = String::Concat( timeInterval, " " );
Console::WriteLine( "{0,22} 0x{1:X8}, {1}", timeInterval, hashCode );
}
int main()
{
Console::WriteLine( "This example of TimeSpan::GetHashCode( ) generates "
"the following \noutput, which displays "
"the hash codes of representative TimeSpan \n"
"objects in hexadecimal and decimal formats.\n" );
Console::WriteLine( "{0,22} {1,10}", "TimeSpan ", "Hash Code" );
Console::WriteLine( "{0,22} {1,10}", "-------- ", "---------" );
DisplayHashCode( TimeSpan(0) );
DisplayHashCode( TimeSpan(1) );
DisplayHashCode( TimeSpan(0,0,0,0,1) );
DisplayHashCode( TimeSpan(0,0,1) );
DisplayHashCode( TimeSpan(0,1,0) );
DisplayHashCode( TimeSpan(1,0,0) );
DisplayHashCode( TimeSpan(36000000001) );
DisplayHashCode( TimeSpan(0,1,0,0,1) );
DisplayHashCode( TimeSpan(1,0,1) );
DisplayHashCode( TimeSpan(1,0,0,0) );
DisplayHashCode( TimeSpan(864000000001) );
DisplayHashCode( TimeSpan(1,0,0,0,1) );
DisplayHashCode( TimeSpan(1,0,0,1) );
DisplayHashCode( TimeSpan(100,0,0,0) );
DisplayHashCode( TimeSpan(100,0,0,0,1) );
DisplayHashCode( TimeSpan(100,0,0,1) );
}
/*
This example of TimeSpan::GetHashCode( ) generates the following
output, which displays the hash codes of representative TimeSpan
objects in hexadecimal and decimal formats.
TimeSpan Hash Code
-------- ---------
00:00:00 0x00000000, 0
00:00:00.0000001 0x00000001, 1
00:00:00.0010000 0x00002710, 10000
00:00:01 0x00989680, 10000000
00:01:00 0x23C34600, 600000000
01:00:00 0x61C46808, 1640261640
01:00:00.0000001 0x61C46809, 1640261641
01:00:00.0010000 0x61C48F18, 1640271640
01:00:01 0x625CFE88, 1650261640
1.00:00:00 0x2A69C0C9, 711573705
1.00:00:00.0000001 0x2A69C0C8, 711573704
1.00:00:00.0010000 0x2A69E7D9, 711583705
1.00:00:01 0x2B025649, 721573449
100.00:00:00 0x914F4E94, -1857073516
100.00:00:00.0010000 0x914F6984, -1857066620
100.00:00:01 0x91E7D814, -1847076844
*/
// Example for the TimeSpan.GetHashCode( ) method.
using System;
class GetHashCode
{
static void DisplayHashCode( TimeSpan interval )
{
// Create a hash code and a string representation of
// the TimeSpan parameter.
string timeInterval = interval.ToString( );
int hashCode = interval.GetHashCode( );
// Pad the end of the TimeSpan string with spaces if it
// does not contain milliseconds.
int pIndex = timeInterval.IndexOf( ':' );
pIndex = timeInterval.IndexOf( '.', pIndex );
if( pIndex < 0 ) timeInterval += " ";
Console.WriteLine( "{0,22} 0x{1:X8}, {1}",
timeInterval, hashCode );
}
static void Main( )
{
Console.WriteLine(
"This example of TimeSpan.GetHashCode( ) generates " +
"the following \noutput, which displays " +
"the hash codes of representative TimeSpan \n" +
"objects in hexadecimal and decimal formats.\n" );
Console.WriteLine( "{0,22} {1,10}",
"TimeSpan ", "Hash Code" );
Console.WriteLine( "{0,22} {1,10}",
"-------- ", "---------" );
DisplayHashCode( new TimeSpan( 0 ) );
DisplayHashCode( new TimeSpan( 1 ) );
DisplayHashCode( new TimeSpan( 0, 0, 0, 0, 1 ) );
DisplayHashCode( new TimeSpan( 0, 0, 1 ) );
DisplayHashCode( new TimeSpan( 0, 1, 0 ) );
DisplayHashCode( new TimeSpan( 1, 0, 0 ) );
DisplayHashCode( new TimeSpan( 36000000001 ) );
DisplayHashCode( new TimeSpan( 0, 1, 0, 0, 1 ) );
DisplayHashCode( new TimeSpan( 1, 0, 1 ) );
DisplayHashCode( new TimeSpan( 1, 0, 0, 0 ) );
DisplayHashCode( new TimeSpan( 864000000001 ) );
DisplayHashCode( new TimeSpan( 1, 0, 0, 0, 1 ) );
DisplayHashCode( new TimeSpan( 1, 0, 0, 1 ) );
DisplayHashCode( new TimeSpan( 100, 0, 0, 0 ) );
DisplayHashCode( new TimeSpan( 100, 0, 0, 0, 1 ) );
DisplayHashCode( new TimeSpan( 100, 0, 0, 1 ) );
}
}
/*
This example of TimeSpan.GetHashCode( ) generates the following
output, which displays the hash codes of representative TimeSpan
objects in hexadecimal and decimal formats.
TimeSpan Hash Code
-------- ---------
00:00:00 0x00000000, 0
00:00:00.0000001 0x00000001, 1
00:00:00.0010000 0x00002710, 10000
00:00:01 0x00989680, 10000000
00:01:00 0x23C34600, 600000000
01:00:00 0x61C46808, 1640261640
01:00:00.0000001 0x61C46809, 1640261641
01:00:00.0010000 0x61C48F18, 1640271640
01:00:01 0x625CFE88, 1650261640
1.00:00:00 0x2A69C0C9, 711573705
1.00:00:00.0000001 0x2A69C0C8, 711573704
1.00:00:00.0010000 0x2A69E7D9, 711583705
1.00:00:01 0x2B025649, 721573449
100.00:00:00 0x914F4E94, -1857073516
100.00:00:00.0010000 0x914F6984, -1857066620
100.00:00:01 0x91E7D814, -1847076844
*/
' Example for the TimeSpan.GetHashCode( ) method.
Module GetHashCode
Sub DisplayHashCode( interval As TimeSpan )
' Create a hash code and a string representation of
' the TimeSpan parameter.
Dim timeInterval As String = interval.ToString( )
Dim hashCode As Integer = interval.GetHashCode( )
' Pad the end of the TimeSpan string with spaces if it
' does not contain milliseconds.
Dim pIndex As Integer = timeInterval.IndexOf( ":"c )
pIndex = timeInterval.IndexOf( "."c, pIndex )
If pIndex < 0 Then timeInterval &= " "
Console.WriteLine( "{0,22} 0x{1:X8}, {1}", _
timeInterval, hashCode )
End Sub
Sub Main( )
Console.WriteLine( _
"This example of TimeSpan.GetHashCode( ) generates " & _
"the following " & vbCrLf & "output, which displays " & _
"the hash codes of representative TimeSpan " & vbCrLf & _
"objects in hexadecimal and decimal formats." & vbCrLf )
Console.WriteLine( "{0,22} {1,10}", _
"TimeSpan ", "Hash Code" )
Console.WriteLine( "{0,22} {1,10}", _
"-------- ", "---------" )
DisplayHashCode( new TimeSpan( 0 ) )
DisplayHashCode( new TimeSpan( 1 ) )
DisplayHashCode( new TimeSpan( 0, 0, 0, 0, 1 ) )
DisplayHashCode( new TimeSpan( 0, 0, 1 ) )
DisplayHashCode( new TimeSpan( 0, 1, 0 ) )
DisplayHashCode( new TimeSpan( 1, 0, 0 ) )
DisplayHashCode( new TimeSpan( 36000000001 ) )
DisplayHashCode( new TimeSpan( 0, 1, 0, 0, 1 ) )
DisplayHashCode( new TimeSpan( 1, 0, 1 ) )
DisplayHashCode( new TimeSpan( 1, 0, 0, 0 ) )
DisplayHashCode( new TimeSpan( 864000000001 ) )
DisplayHashCode( new TimeSpan( 1, 0, 0, 0, 1 ) )
DisplayHashCode( new TimeSpan( 1, 0, 0, 1 ) )
DisplayHashCode( new TimeSpan( 100, 0, 0, 0 ) )
DisplayHashCode( new TimeSpan( 100, 0, 0, 0, 1 ) )
DisplayHashCode( new TimeSpan( 100, 0, 0, 1 ) )
End Sub
End Module
' This example of TimeSpan.GetHashCode( ) generates the following
' output, which displays the hash codes of representative TimeSpan
' objects in hexadecimal and decimal formats.
'
' TimeSpan Hash Code
' -------- ---------
' 00:00:00 0x00000000, 0
' 00:00:00.0000001 0x00000001, 1
' 00:00:00.0010000 0x00002710, 10000
' 00:00:01 0x00989680, 10000000
' 00:01:00 0x23C34600, 600000000
' 01:00:00 0x61C46808, 1640261640
' 01:00:00.0000001 0x61C46809, 1640261641
' 01:00:00.0010000 0x61C48F18, 1640271640
' 01:00:01 0x625CFE88, 1650261640
' 1.00:00:00 0x2A69C0C9, 711573705
' 1.00:00:00.0000001 0x2A69C0C8, 711573704
' 1.00:00:00.0010000 0x2A69E7D9, 711583705
' 1.00:00:01 0x2B025649, 721573449
' 100.00:00:00 0x914F4E94, -1857073516
' 100.00:00:00.0010000 0x914F6984, -1857066620
' 100.00:00:01 0x91E7D814, -1847076844
Комментарии
Два TimeSpan объекта могут иметь одинаковый хэш-код, даже если они представляют различные значения времени.