簡體   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