IdnMapping.GetHashCode Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí kód hash pro tento IdnMapping objekt.
public:
override int GetHashCode();
public override int GetHashCode ();
override this.GetHashCode : unit -> int
Public Overrides Function GetHashCode () As Integer
Návraty
Jedna ze čtyř 32bitových signýchých konstant odvozených z vlastností objektu IdnMapping . Vrácená hodnota nemá žádný zvláštní význam a není vhodná pro použití v algoritmu hash kódu.
Příklady
Následující příklad předpokládá, že jeden řetězec může obsahovat více e-mailových adres oddělených mezerami. Odebere místní část a znak @z každé e-mailové adresy a předá výsledný název domény metodě GetAscii(String, Int32) nebo GetAscii(String, Int32, Int32) k vytvoření názvu domény Punycode. Metoda GetUnicode(String, Int32, Int32) pak převede název domény Punycode zpět na původní název domény.
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 --> мойдомен.рф
Imports System.Globalization
Module Example
Public Sub Main()
Dim email As String = "johann_doe@bücher.com john_doe@hotmail.com иван@мойдомен.рф"
Dim idn As New IdnMapping()
Dim start, [end] As Integer
Do While [end] >= 0
start = email.IndexOf("@", [end])
[end] = email.IndexOf(" ", start)
Dim domain As String = String.Empty
Try
Dim punyCode As String = String.Empty
If start >= 0 And [end] >= 0 Then
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)
End If
Dim name2 As String = idn.GetUnicode(punyCode)
Console.WriteLine("{0} --> {1} --> {2}", domain, punyCode, name2)
Catch e As ArgumentException
Console.WriteLine("{0} is not a valid domain name.", domain)
End Try
Console.WriteLine()
Loop
End Sub
End Module
' 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 --> мойдомен.рф
Poznámky
GetHashCode Pokud vaše aplikace potřebuje implementovat smysluplný algoritmus hash kódu, přepište metodu .