C Sharp/DateTime/GetHashCode

From Meshplex

Jump to: navigation, search
Image:Csharp_programming.gif

Main Home

Basics
C# Tutorial Home
C# - Introduction to Visual Studio IDE
Introduction to C#
C# - Overview
C# - Statements
C# - Data Types
C# - Variables
C# - Operators
C# - Flow Control
C# - Variables II
C# - Functions and Methods
C# - Classes and Objects I
C# - Enumerations
C# - Dates and Times
C# - Random Numbers

Advanced
C# - Inheritance
C# - Polymorphism
C# - Garbage Collection
C# - Operator Overloading
C# - Encapsulation
C# - Properties
C# - Indexers
C# - Exceptions
C# - GUI
C# - Delegates
C# - Events
C# - Components
C# - Multithreading
C# - Regular Expressions
C# - Graphics and Multimedia
C# - Files and Streams
C# - XML
C# - Database, SQL and ADO.NET
C# - ASP.NET Web Forms and Web Controls
C# - Web Services
C# - Network Programming
C# - Datastructures and Collections
C# - Enumerations and Iterators
C# - .NET Assemblies
C# - CLR
C# - Visual Studio Debugger
C# - Namespaces
C# - Generics
C# - MS Intermediate Language
C# - Deploying Windows Application

[edit] Using the DateTime.GetHashCode Method

The GetHasCode method is very useful in performing comparison operations. If we had two or more dates that we wanted to compare for equality we could not compare the dates directly and get an accurate result. The GetHashCode attempts to get the exact value of any object, not just DateTime objects. It can be reliably compared against other hashes.


  • Note: GetHashCode returns an int value


[edit] Syntax

int variable = object.GetHashCode();


[edit] Example 1:

This code will print two different dates and then compare them against their hashes.

using System;
class Program
{
    static void Main()
    {
        DateTime d1 = DateTime.Now;
        object d2 = d1;
        int hash1 = d1.GetHashCode();
        int hash2 = d2.GetHashCode();
        Console.WriteLine(d1.ToString());
        Console.WriteLine(d2.ToString());
        Console.WriteLine(hash1);
        Console.WriteLine(hash2);
 
        if (hash1 == hash2)
            Console.WriteLine("they are equal");
        else
            Console.WriteLine("they are not equal");
 
 
        Console.Read();
    }
}

Output:

4/6/2007 8:28:51 PM
4/6/2013 8:28:51 PM
475318923
475318923
they are equal


As you can see d2 is of object type so you cannot simply compare d1 and d2 directly. You must compare their hashes.


<-- DateTime Tutorial