我正在尝试将神经网络的一些C ++代码转换为C#。我首先从1993年的一本书中获取了C ++代码,然后运行了它。然后使用STL翻译它,然后再次运行。现在,我正在尝试使用Visual Web Developer 2008 Express将其纳入C#。

原始代码使用了“ friend”类,而我只是想尽一切努力使所有内容都“公开”。

以下代码可以编译,但在运行时仅提供空引用:

public class ineuron
{
     public Double weight, activation;

     public ineuron(Double set_wt)
     {
         weight = set_wt;
     }


...

 public class netwrk
 {
     public oneuron onrn;
     public ineuron in1, in2, in3, in4;

     public netwrk( Double inp_1, Double inp_2, Double inp_3, Double inp_4 )
     {
         ineuron in1 = new ineuron(inp_1);
         ineuron in2 = new ineuron(inp_2);


...

之后,在按钮按下调用的一些代码中:

netwrk ntw = new netwrk(i_n1, i_n2, i_n3, i_n4);


不幸的是,尝试使用ntw.in1.activation等会导致空引用运行时错误。

我忘了做什么?

巴尼

最佳答案

执行此操作时:

ineuron in1 = new ineuron(inp_1);


您声明一个新的局部变量,该局部变量在构造函数完成时消失。

如果要引用类成员in1,请执行以下操作:

in1 = new ineuron(inp_1);

关于c# - C#中的嵌套实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4719778/

10-12 14:55