次の方法で共有


TimeSpan.GetHashCode メソッド

このインスタンスのハッシュ コードを返します。

Overrides Public Function GetHashCode() As Integer
[C#]
public override int GetHashCode();
[C++]
public: int GetHashCode();
[JScript]
public override function GetHashCode() : int;

戻り値

32 ビット符号付き整数ハッシュ コード。

解説

2 つの TimeSpan オブジェクトが、異なる時間値を表していても、同じハッシュ コードを持つ場合があります。

使用例

[Visual Basic, C#, C++] GetHashCode メソッドを使用して、複数の TimeSpan オブジェクトのハッシュ コードを生成するコード例を次に示します。

 
' Example for the TimeSpan.GetHashCode( ) method.
Imports System
Imports Microsoft.VisualBasic

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

[C#] 
// 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
*/ 

[C++] 
// Example for the TimeSpan::GetHashCode( ) method.
#using <mscorlib.dll>
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, S"        " );

    Console::WriteLine( S"{0,22}   0x{1:X8}, {1}", 
        timeInterval, __box( hashCode ) );
} 

void main( )
{
    Console::WriteLine(
        S"This example of TimeSpan::GetHashCode( ) generates " 
        S"the following \noutput, which displays " 
        S"the hash codes of representative TimeSpan \n" 
        S"objects in hexadecimal and decimal formats.\n" );
    Console::WriteLine( S"{0,22}   {1,10}", 
        S"TimeSpan        ", S"Hash Code" );
    Console::WriteLine( S"{0,22}   {1,10}", 
        S"--------        ", S"---------" );

    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
*/ 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

TimeSpan 構造体 | TimeSpan メンバ | System 名前空間