Type.GetHashCode 方法
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回此实例的哈希代码。
public:
override int GetHashCode();
public override int GetHashCode ();
override this.GetHashCode : unit -> int
Public Overrides Function GetHashCode () As Integer
此实例的哈希代码。
下面的示例显示 类的哈希 System.Windows.Forms.Button
代码。
#using <system.dll>
#using <system.windows.forms.dll>
#using <System.Drawing.dll>
using namespace System;
using namespace System::Security;
using namespace System::Reflection;
int main()
{
Type^ myType = System::Net::IPAddress::typeid;
array<FieldInfo^>^myFields = myType->GetFields( static_cast<BindingFlags>(BindingFlags::Static | BindingFlags::NonPublic) );
Console::WriteLine( "\nThe IPAddress class has the following nonpublic fields: " );
System::Collections::IEnumerator^ myEnum = myFields->GetEnumerator();
while ( myEnum->MoveNext() )
{
FieldInfo^ myField = safe_cast<FieldInfo^>(myEnum->Current);
Console::WriteLine( myField );
}
Type^ myType1 = System::Net::IPAddress::typeid;
array<FieldInfo^>^myFields1 = myType1->GetFields();
Console::WriteLine( "\nThe IPAddress class has the following public fields: " );
System::Collections::IEnumerator^ myEnum2 = myFields1->GetEnumerator();
while ( myEnum2->MoveNext() )
{
FieldInfo^ myField = safe_cast<FieldInfo^>(myEnum2->Current);
Console::WriteLine( myField );
}
try
{
Console::WriteLine( "The HashCode of the System::Windows::Forms::Button type is: {0}", System::Windows::Forms::Button::typeid->GetHashCode() );
}
catch ( SecurityException^ e )
{
Console::WriteLine( "An exception occurred." );
Console::WriteLine( "Message: {0}", e->Message );
}
catch ( Exception^ e )
{
Console::WriteLine( "An exception occurred." );
Console::WriteLine( "Message: {0}", e->Message );
}
}
using System;
using System.Security;
using System.Reflection;
class FieldsSample
{
public static void Main()
{
Type myType = typeof(System.Net.IPAddress);
FieldInfo [] myFields = myType.GetFields(BindingFlags.Static | BindingFlags.NonPublic);
Console.WriteLine ("\nThe IPAddress class has the following nonpublic fields: ");
foreach (FieldInfo myField in myFields)
{
Console.WriteLine(myField.ToString());
}
Type myType1 = typeof(System.Net.IPAddress);
FieldInfo [] myFields1 = myType1.GetFields();
Console.WriteLine ("\nThe IPAddress class has the following public fields: ");
foreach (FieldInfo myField in myFields1)
{
Console.WriteLine(myField.ToString());
}
try
{
Console.WriteLine("The HashCode of the System.Windows.Forms.Button type is: {0}",
typeof(System.Windows.Forms.Button).GetHashCode());
}
catch(SecurityException e)
{
Console.WriteLine("An exception occurred.");
Console.WriteLine("Message: "+e.Message);
}
catch(Exception e)
{
Console.WriteLine("An exception occurred.");
Console.WriteLine("Message: "+e.Message);
}
}
}
Imports System.Security
Imports System.Reflection
' Compile this sample using the following command line:
' vbc type_gethashcode_getfields.vb /r:"System.Windows.Forms.dll" /r:"System.dll"
Class FieldsSample
Public Shared Sub Main()
Dim myType As Type = GetType(System.Net.IPAddress)
Dim myFields As FieldInfo() = myType.GetFields((BindingFlags.Static Or BindingFlags.NonPublic))
Console.WriteLine(ControlChars.Lf & "The IPAddress class has the following nonpublic fields: ")
Dim myField As FieldInfo
For Each myField In myFields
Console.WriteLine(myField.ToString())
Next myField
Dim myType1 As Type = GetType(System.Net.IPAddress)
Dim myFields1 As FieldInfo() = myType1.GetFields()
Console.WriteLine(ControlChars.Lf & "The IPAddress class has the following public fields: ")
Dim myField1 As FieldInfo
For Each myField1 In myFields1
Console.WriteLine(myField.ToString())
Next myField1
Try
Console.WriteLine("The HashCode of the System.Windows.Forms.Button type is: {0}", GetType(System.Windows.Forms.Button).GetHashCode())
Catch e As SecurityException
Console.WriteLine("An exception occurred.")
Console.WriteLine(("Message: " & e.Message))
Catch e As Exception
Console.WriteLine("An exception occurred.")
Console.WriteLine(("Message: " & e.Message))
End Try
End Sub
End Class
此方法重写 Object.GetHashCode。
产品 | 版本 |
---|---|
.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 |
.NET Framework | 1.1, 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 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 |
UWP | 10.0 |