IdnMapping.GetHashCode Method

Definition

Returns a hash code for this IdnMapping object.

C#
public override int GetHashCode();

Returns

One of four 32-bit signed constants derived from the properties of an IdnMapping object. The return value has no special meaning and is not suitable for use in a hash code algorithm.

Examples

The following example assumes that a single string can contain multiple email addresses separated by spaces. It removes the local part and the @ character from each email address, and passes the resulting domain name to the GetAscii(String, Int32) or GetAscii(String, Int32, Int32) method to create a Punycode domain name. The GetUnicode(String, Int32, Int32) method then converts the Punycode domain name back into the original domain name.

C#
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string email = "johann_doe@bücher.com john_doe@hotmail.com иван@мойдомен.рф";
      IdnMapping idn = new IdnMapping();
      int start = 0, end = 0;

      while (end >= 0) {
         start = email.IndexOf("@", end);
         end = email.IndexOf(" ", start);
         string domain = String.Empty;

         try {
            string punyCode = String.Empty;
            if (start >= 0 && end >= 0) {
               domain = email.Substring(start + 1, end - start - 1);
               punyCode = idn.GetAscii(email, start + 1, end - start - 1);
            }
            else {
               domain = email.Substring(start + 1);
               punyCode = idn.GetAscii(email, start + 1);
            }
            string name2 = idn.GetUnicode(punyCode);
            Console.WriteLine("{0} --> {1} --> {2}", domain, punyCode, name2);
         }
         catch (ArgumentException) {
            Console.WriteLine("{0} is not a valid domain name.", domain);
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//       bücher.com --> xn--bcher-kva.com --> bücher.com
//
//       hotmail.com --> hotmail.com --> hotmail.com
//
//       мойдомен.рф --> xn--d1acklchcc.xn--p1ai --> мойдомен.рф

Remarks

Override the GetHashCode method if your application needs to implement a meaningful hash code algorithm.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0