private static UIFont ToUIFont(string family, float size, FontAttributes attributes) { var key = new ToUIFontKey(family, size, attributes); lock (_toUiFont) { UIFont value; if (_toUiFont.TryGetValue(key, out value)) { return(value); } } var generatedValue = GetUIFont(family, size, attributes); lock (_toUiFont) { UIFont value; if (!_toUiFont.TryGetValue(key, out value)) { _toUiFont.Add(key, value = generatedValue); } return(value); } }
static UIFont ToUIFont(string family, float size, FontAttributes attributes) { var key = new ToUIFontKey(family, size, attributes); lock (ToUiFont) { UIFont value; if (ToUiFont.TryGetValue(key, out value)) return value; } var generatedValue = _ToUIFont(family, size, attributes); lock (ToUiFont) { UIFont value; if (!ToUiFont.TryGetValue(key, out value)) ToUiFont.Add(key, value = generatedValue); return value; } }