GetHashCode Method
Collapse the table of content
Expand the table of content

IdnMapping.GetHashCode Method ()

 

Returns a hash code for this IdnMapping object.

Namespace:   System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

public override int GetHashCode()

Return Value

Type: System.Int32

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.

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

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.

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 --> мойдомен.рф

Universal Windows Platform
Available since 10
.NET Framework
Available since 2.0
Return to top
Show:
© 2016 Microsoft