public static bool TryGet <T>(this UIItemContainer lookHere, SearchCriteria criteria, out T matchingItem) where T : IUIItem { if (lookHere.Exists <T>(criteria)) { matchingItem = lookHere.Get <T>(criteria); return(true); } matchingItem = default(T); return(false); }