我想知道它们究竟是如何从C#/ .NET中的布尔类型生成哈希码的?
答案 0 :(得分:6)
您可以看到.NET here的实际源代码,bool的GetHashCode()
的实际内容是
private bool m_value;
internal const int True = 1;
internal const int False = 0;
public override int GetHashCode() {
return (m_value)?True:False;
}
(是的,System.Boolean
包含bool
作为成员变量是奇怪的,当编译类时,CLR会处理“原始”类型Boolean
,{{1 }},Byte
,SByte
,Int16
,UInt16
,Int32
,UInt32
,Int64
,UInt64
,IntPtr
,UIntPtr
,Char
和Double
特殊,以便他们可以做类似的事情)