IdnMapping.GetHashCode Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar en hash-kod för det här IdnMapping objektet.
public:
override int GetHashCode();
public override int GetHashCode();
override this.GetHashCode : unit -> int
Public Overrides Function GetHashCode () As Integer
Returer
En av fyra 32-bitars signerade konstanter som härleds från egenskaperna för ett IdnMapping objekt. Returvärdet har ingen särskild betydelse och är inte lämpligt för användning i en hashkodalgoritm.
Exempel
I följande exempel förutsätts att en enskild sträng kan innehålla flera e-postadresser avgränsade med blanksteg. Den tar bort den lokala delen och @-tecknet från varje e-postadress och skickar det resulterande domännamnet GetAscii(String, Int32) till metoden eller GetAscii(String, Int32, Int32) för att skapa ett Punycode-domännamn. Metoden GetUnicode(String, Int32, Int32) konverterar sedan punycode-domännamnet tillbaka till det ursprungliga domännamnet.
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 --> мойдомен.рф
Kommentarer
Åsidosätt GetHashCode metoden om ditt program behöver implementera en meningsfull hashkodalgoritm.