繁体   English   中英

如何在C#中使用类作为模板?

[英]How do I use a class as a template in C#?

我不确定我是否正确提出了要求,请耐心等待。 我目前正在尝试对神经网络进行编程。 下面是一些示例代码。

using System;
namespace Network
{
    class BaseNeuron
        {
            public static void Main (string[] args)
            {
                public int Weight;
                public void sendPulse()
                {
                }
                public void receivePulse()
                {
                }
            }
        }
    }

因此,基本上,我希望能够创建BaseNeuron类的多个实例,并将每个“神经元”绑定到其他“神经元”以构成神经元网络。 有什么方法可以执行而不必为每个神经元重复此代码片段吗?

首先,您提供的代码中存在一些错误:

class BaseNeuron
{
    public static void Main (string[] args)
    {
        public int Weight;

        public void sendPulse()
        {
        }

        public void receivePulse()
        {
        }
    }
}

它应该是:

class BaseNeuron
{            
    //class field
    public int Weight;

    //class method
    public void SendPulse(/*Parameters ...*/)
    {
        //Do stuff
    }

    //class method
    public void ReceivePulse(/*Parameters ...*/)
    {
        //Do stuff
    }            
}

请注意, Main已消失。 类通常没有Main方法,该方法通常只是应用程序的入口点 (程序运行时要执行的第一个函数)。

基本上,每个类都是对象模板 ,这意味着您可以使用new关键字创建该类的新实例 ,如下所示:

//creating two seperate neurons
neuron1 = new BaseNeuron();
neuron2 = new BaseNeuron();

//Notice that each SendPulse is called on separate objects!
neuron1.SendPulse();
neuron2.SendPulse();

我建议您阅读一些有关课堂的知识(也许在这里 ),以更好地了解其工作原理。

好了,现在我们上课了。 您说过我们想建立一个由几个神经元组成的网络,这些神经元是上述类的实例。 因此,您可能想要做的是:

class Program
{
    public void Main(string[] args)
    {
        //the size of the network
        int size = 5;

        //create array of Neurons
        BaseNeuron[] network = new BaseNeuron[size];

        for(int i = 0; i < network.length; i++)
        {
            //actually create a new nueron (instantiate them)
            network[i] = new BaseNeuron();

            //link up neurons together, etc
        }
    }
}

当然,实现取决于BaseNeuron类的内部实现。 您可能还需要创建一个NeuralNetwork类来包含上述代码和相关功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM