Почему TValue не может быть типом значения в ConditionalWeakTable? - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь связать некоторые произвольные данные со страницей в приложении Xamarin, и в идеале я хотел бы использовать ConditionalWeakTable для этого. Данные, которые я связываю, это Color, который, конечно, является структурой, а не объектом. Похоже, что ConditionalWeakTable<TKey, TValue> имеет ограничение : class на TValue ... почему это так? Я понимаю, почему TKey должен быть ссылочным типом; это таблица "слабых ссылок". Но почему ценность должна быть? Есть ли какое-то негативное влияние простого написания класса-обертки для хранения значения Color, чтобы я мог затем использовать обертку как TValue?

screenshot

...