public static TField GetOrCreateDField <TOn, TField>(this TOn obj, DynamicFieldHandle <TOn, TField> handle) where TOn : class where TField : DynamicField <TOn, TField>, new() { if (obj.TryGetDField(out TField f)) { return(f); } var n = new TField(); Storage <TOn, TField> .store.Add(obj, n); return(n); }
public static Boolean RemoveDField <TOn, TField>(this TOn obj, DynamicFieldHandle <TOn, TField> handle) where TOn : class where TField : DynamicField <TOn, TField>, new() => Storage <TOn, TField> .store.Remove(obj);