IdnMapping.GetHashCode Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает хэш-код объекта IdnMapping.
public:
override int GetHashCode();
public override int GetHashCode ();
override this.GetHashCode : unit -> int
Public Overrides Function GetHashCode () As Integer
Возвращаемое значение
Одна из четырех 32-битных констант со знаком, унаследованных от свойств объекта IdnMapping. Возвращаемое значение не имеет особого значения и не пригодно к использованию в алгоритме хэш-кода.
Примеры
В следующем примере предполагается, что одна строка может содержать несколько адресов электронной почты, разделенных пробелами. Он удаляет локальную часть и символ @из каждого адреса электронной почты и передает полученное доменное имя методу GetAscii(String, Int32) или GetAscii(String, Int32, Int32) для создания доменного имени Punycode. Затем GetUnicode(String, Int32, Int32) метод преобразует доменное имя Punycode обратно в исходное доменное имя.
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 --> мойдомен.рф
Комментарии
Переопределите метод , GetHashCode если приложению необходимо реализовать значимый алгоритм хэш-кода.