using System.Collections.Generic;
using KGySoft.CoreLibraries;
public static void Main()
var dict = new Dictionary<string, object>
if (dict.TryGetValue("Int", out obj) && obj is int)
if (dict.TryGetValue("Int", out object o) && o is int i)
intValue = (int)dict.GetValueOrDefault("Int");
intValue = dict.GetValueOrDefault("Int", 0);
intValue = dict.GetValueOrDefault<int>("Int");
intValue = dict.GetActualValueOrDefault("Int", 0);
int? intOrNull = dict.GetValueOrDefault<int?>("Unknown");
intValue = (int)dict.GetValueOrDefault("Unknown", () =>
Console.WriteLine("Default value factory was invoked from GetValueOrDefault");
intValue = dict.GetActualValueOrDefault("Unknown", () =>
Console.WriteLine("Default value factory was invoked from GetActualValueOrDefault");
Console.WriteLine($"{nameof(intValue)}: {intValue}; {nameof(intOrNull)}: {intOrNull}");