我正在尝试将神经网络的一些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/