static void MergeDefaultCodeStyles <TStyle, TStyleType> (List <TStyle> styles) where TStyle : StyleBase <TStyleType>, new() where TStyleType : struct, Enum { foreach (var s in GetDefaultCodeStyles <TStyle, TStyleType>()) { if (s.Id > 0 && styles.FindIndex(i => ClrHacker.DirectCompare(i.StyleID, s.StyleID)) == -1) { styles.Add(s); } } }
internal static TStyle[] GetDefaultCodeStyles <TStyle, TStyleType>() where TStyle : StyleBase <TStyleType>, new() where TStyleType : struct, Enum { var r = new TStyle[Enum.GetValues(typeof(TStyleType)).Length]; for (var i = 0; i < r.Length; i++) { r[i] = new TStyle { StyleID = ClrHacker.DirectCast <int, TStyleType>(i) }; } return(r); }