C#中的嵌套实例

时间:2011-01-18 01:48:50

标签: c#

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

原始代码使用“朋友”类,我只是想做同样的事情,使所有内容都“公开”。

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

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等会导致空引用运行时错误。

我忘了做什么?

巴尼

2 个答案:

答案 0 :(得分:4)

执行此操作时:

ineuron in1 = new ineuron(inp_1);

声明一个新的局部变量,当构造函数完成时它会消失。

如果您想引用班级成员in1,请转到:

in1 = new ineuron(inp_1);

答案 1 :(得分:1)

您正在失去netwrk的{​​{1}}个对象的范围。

inueron