Почему хеш ключа поддерживается внутри узла HashMap? [Дубликат]

HttpClient доступен только в версии 4.5 NET и выше, а Unity не использует эту версию. Unity использует версию 3.5 .NET.

Если вы используете Unity 5.3, UnityWebRequest.Delete можно использовать для создания запроса на удаление. Его можно найти в пространстве имен Experimental.Networking. Если вы используете Unity 5.4 и выше, UnityWebRequest можно найти в пространстве имен UnityEngine.Networking;.

Полный рабочий пример:

IEnumerator makeRequest(string url)
{
    UnityWebRequest delReq = UnityWebRequest.Delete(url);
    yield return delReq.Send();

    if (delReq.isError)
    {
        Debug.Log("Error: " + delReq.error);
    }
    else
    {
        Debug.Log("Received " + delReq.downloadHandler.text);
    }
}

Использование:

StartCoroutine(makeRequest("http://www.example.com/whatever"));

Обязательно включите using UnityEngine.Networking. Вы можете найти здесь полные примеры здесь .


EDIT (UPDATE)

Unity теперь поддерживает .NET 4.5, поэтому теперь вы можете использовать HttpClient, если ты хочешь. См. этот пост о том, как его включить.

После включения его, перейдите к \Editor\Data\MonoBleedingEdge\lib\mono\4.5 или, например, C:\Program Files\Unity\Editor\Data\MonoBleedingEdge\lib\mono\4.5 на моем компьютере.

В этом каталоге скопируйте System.Net.Http.dll в каталог \Assets и вы сможете использовать HttpClient после импорта пространства имен System.Net.Http. Если есть некоторая другая ошибка в отношении отсутствующих зависимостей, вы также можете получить DLL с этого пути и скопировать их в каталог \Assets.

5
задан Chris Martin 19 March 2016 в 11:36
поделиться

3 ответа

Значение

переменной hash может отличаться от хэш-кода ключей. «hash» - это результат вызова метода hash (key.hashCode ()). Поэтому требуется сравнить хэш-значения, а также равенство ключей.

1
ответ дан Dev Blanked 18 August 2018 в 11:39
поделиться

Это просто оптимизация: сравнение двух целых чисел происходит быстрее, чем вызов equals().

Если два хэш-кода отличаются друг от друга, то на основе контракта equals и hashCode карта знает, что существующий ключ не равен данному ключу и может идти быстрее на следующий.

8
ответ дан Erick G. Hagstrom 18 August 2018 в 11:39
поделиться

Просто избегайте вызова метода, когда это возможно: если хеш (который не является hashCode(), это собственное хеширование карты) отличается от хэша записи, он знает , он не " t необходимо вызвать equals. Просто оптимизируйте бит.

7
ответ дан T.J. Crowder 18 August 2018 в 11:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: