复合模式 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 IEnumerable<Neural> self, IEnumerable<Neural> 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<Neural>
    {
        public float value;
        public List<Neural> In, Out;  
        public IEnumerator<Neural> GetEnumerator()
        {
            yield return this;
        } 
        IEnumerator IEnumerable.GetEnumerator()
        {
           return  GetEnumerator();
        } 

    } 
    class NeuronLayer:Collection<Neural>
    {

    }
    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); 

        }
    }

 

posted @ 2022-05-14 16:06  后跳  阅读(58)  评论(0编辑  收藏  举报