Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core Net框架中的哈希代码等价物_.net Core_.net Framework Version - Fatal编程技术网

.net core Net框架中的哈希代码等价物

.net core Net框架中的哈希代码等价物,.net-core,.net-framework-version,.net Core,.net Framework Version,在将.NET核心项目转换为.NET Framework时,需要注意的一点是,现在需要将使用哈希代码转换为等效的代码。可以看出,Hashcode是特定于.NET核心版本和一些扩展的 https://docs.microsoft.com/en-us/dotnet/api/system.hashcode?view=dotnet-plat-ext-3.1 想知道在.NET Framework中,如果有任何内置对象类型,在用法方面什么会足够接近。编辑: System.HashCode在.NET Core

在将.NET核心项目转换为.NET Framework时,需要注意的一点是,现在需要将使用哈希代码转换为等效的代码。可以看出,Hashcode是特定于.NET核心版本和一些扩展的

https://docs.microsoft.com/en-us/dotnet/api/system.hashcode?view=dotnet-plat-ext-3.1
想知道在.NET Framework中,如果有任何内置对象类型,在用法方面什么会足够接近。

编辑:

System.HashCode
在.NET Core中也可用。您可以使用
HashCode。为此,请参阅:

var combined=HashCode.combined(“一”、“二”);
(前面的答案如下)

详细的答案可在此处找到:

如果只需要一个简单的答案,可以将对象哈希组合到一个新的结构(元组、匿名类等)中,并对结果调用
GetHashCode()

e、 g

public override int GetHashCode(){
返回新的{MyField1,MyField2}.GetHashCode();
}
详细说明上面链接的答案,当然,如果您想让它更容易(?)创建一个通用的静态帮助器类来为您完成这项工作:

公共类MyHashCode
{
公共静态int散列(参数对象[]值)
=>CustomHash(10099176,values.Select(v=>v.GetHashCode()).ToArray());
//从答案https://stackoverflow.com/a/34006336/25338
公共静态int CustomHash(int seed、int factor、params int[]vals)
{
int hash=种子;
foreach(以VAL为单位的整数i)
{
散列=(散列*因子)+i;
}
返回散列;
}
}
这样称呼它:

公共类UnitTest1
{
[事实]
公共void Test1()
{
字符串s1=“yesz”;
字符串s2=“nope”;
var hash=Utils.MyHashCode.hash(s1,s2);
}
}

它是.NET核心特定的结构,您可以用旧式的
GetHashCode()
实现替换。还有一个问题,您如何覆盖.NET核心项目中几个不同类中调用的所有GetHashCode()方法?你能创建一个HashCode类并在那里执行吗?好问题,当然可以。但是你怎么称呼它呢?写出来的代码会更少吗?或者该类中是否存在任何其他您不想复制的共享逻辑?你对该类签名的外观有什么建议吗?你怎么称呼它?当然,您可以创建一个静态的
MyHashCode.GetHashCode(params object[]values)
,但是如何从中动态创建一个匿名对象呢?否则我需要重写10+类GetHashCode(),除非它们都继承自我创建的具有抽象方法的基类,或者可以重写某些东西。我想了想,但不喜欢任何一种方式。欢迎有更好的主意。