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

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 的多个实例,每个实例 "neuron" 与其他 "neurons" 相关联以创建一个神经元网络。有什么方法可以做到这一点而不必为每个神经元重复这段代码吗?

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

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 方法,它通常只是应用程序的 入口点 (程序运行时第一个执行的函数) .

基本上,每个 class 都是对象 的模板 ,这意味着您可以创建新的 实例 class 通过使用 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(也许 here)的内容,以便更好地理解其工作原理。

好的,现在我们 class 想通了。你说我们想做一个由几个神经元组成的网络,这些神经元是上面 class 的实例。 所以,您可能想要做的是:

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

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