复合模式 CompSite_Neural
复合模式 神经元和神经元组
public static class ExtensitionNeural { //public static void ShowNeuralsIn(this Neural l, int dent) //{ // Console.WriteLine($"{new string('-', dent)}"); // if (l.In.Count > 0) // { // l.In.ForEach(a => ShowNeuralsIn(a, dent + 1)); // } //} //public static void ShowNeuralsOut(this Neural l, int dent) //{ // Console.WriteLine($"{new string('-', dent)}"); // if (l.Out.Count > 0) // { // l.Out.ForEach(a => ShowNeuralsOut(a, dent + 1)); // } //} public static void ConnecTo(this IEnumerableself, IEnumerable other) { if (ReferenceEquals(self, other)) return; foreach (var from in self) foreach (var to in other) { from.Out.Add(to); to.In.Add(from); } } } public class Neural:IEnumerable { public float value; public List In, Out; public IEnumerator GetEnumerator() { yield return this; } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } class NeuronLayer:Collection { } class Program { static void Main(string[] args) { Neural neural1 = new Neural(); Neural neural2 = new Neural(); neural1.ConnecTo(neural2); var layer1 = new NeuronLayer(); var layer2 = new NeuronLayer(); neural1.ConnecTo(layer1); layer2.ConnecTo(neural2); } }