Ваше поле DBLookup
должно быть Dictionary<string, MyDel>
. Таким образом, при получении значения возвращаемый тип будет MyDel
, а не object
.
Вы получаете ошибку, потому что тип ссылки, которую вы передаете как аргумент out
, должен совпадать с типом параметра точно . Поскольку аргумент out
имеет тип MyDel
, а параметр TryGetValue
имеет значение object
(поскольку это тип значения в вашем словаре), вы получите ошибку. После внесения вышеуказанного изменения тип аргумента будет соответствовать типу параметра, и сообщение об ошибке исчезнет.
В общем, если вы обнаружите, что объявляете словарь, содержащий значения object
, подумайте, что вы на самом деле будете хранить, и посмотрите, можете ли вы использовать другой тип.