public static Rand Instance(params Behavior[] behavs) { var key = behavs.Aggregate(behavs.Length, (current, i) => current*23 + i.GetHashCode()); Rand ret; if (!instances.TryGetValue(key, out ret)) ret = instances[key] = new Rand(behavs); return ret; }
public static Rand Instance(params Behavior[] behavs) { var key = behavs.Length; foreach (var i in behavs) key = key * 23 + i.GetHashCode(); Rand ret; if (!instances.TryGetValue(key, out ret)) ret = instances[key] = new Rand(behavs); return ret; }