我正在尝试找到一种可靠的方式来唯一标识和跟踪ASP.NET网站中的不同HttpRequest。
有人知道关于HttpRequest.GetHashCode()的实现吗?具体来说,碰撞多久发生一次?
我了解HashCode不能保证是唯一的。我想了解的是统计上我期望HashCode多久重复一次。
我想到的系统可以正常处理HashCode冲突,但是我想确保它们至少与1000个左右中的1个唯一。 短码网-DuanMa.NET
永远不要保证哈希码的唯一性,因为这不是它们的目的-它们旨在帮助进行相等性测试,作为两个实例之间潜在相等性的早期指标。
换句话说,哈希码可帮助您快速排除两个绝对不相等的实例。
也许最好的方法是:
class TrackableHttpRequest : IEquatable<TrackableHttpRequest>
{
readonly Guid id = Guid.NewGuid();
public Guid Id { get { return this.id; } }
public HttpRequest Request { get; set; }
public override Int32 GetHashCode()
{
return this.Id.GetHashCode();
}
public override Boolean Equals(Object obj)
{
return this.Equals(obj as TrackableHttpRequest);
}
public bool Equals(TrackableHttpRequest other)
{
if (other == null)
return false;
return this.Id == other.Id;
}
}
以上就是短码网小编为大家整理的《.net HttpRequest.GetHashCode()实现-发生冲突的频率是多少?》相关内容,希望大家喜欢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!
《.net HttpRequest.GetHashCode()实现-发生冲突的频率是多少?》文档下载仅供参考学习,下载后请在24小时内删除。
转载注明出处:https://www.duanma.net/article/3541f0fc007.html