Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尽管调试器显示对象C,但仍引发NullReferenceException#_C#_Nullreferenceexception - Fatal编程技术网

C# 尽管调试器显示对象C,但仍引发NullReferenceException#

C# 尽管调试器显示对象C,但仍引发NullReferenceException#,c#,nullreferenceexception,C#,Nullreferenceexception,我定义了以下类: public class PerceptronNetwork : NetworkBase { Neuron perceptron { get; set; } public PerceptronTrainer trainingMethod; public PerceptronNetwork(Neuron aNeuron) { this.perceptron = aNeuron; } public double

我定义了以下类:

public class PerceptronNetwork : NetworkBase
{
    Neuron perceptron { get; set; }

    public PerceptronTrainer trainingMethod;

    public PerceptronNetwork(Neuron aNeuron)
    {
        this.perceptron = aNeuron;
    }

    public double train(TrainingTemplate trainingTemplate, int extMaxGenerations)
    {
        // This is simple but the ideea is suposed to be that in larger networks here
        // I do a foreach over the neurons
        double error =  this.trainingMethod.trainNetwork(trainingTemplate, perceptron,
                                                         extMaxGenerations);
        return error;
    }
}
每当我尝试使用主函数中的训练方法时,我都会得到错误

Object reference not set to an instance of an object.
指向
感知器
对象

尽管如此,当我将鼠标悬停在函数调用trainingTemplate、perceptron和extMaxGenerations中的每个对象上时,它们似乎都指向正确的值


我是否以某种方式声明或实例化了错误的方法?

请确保已实例化
此.trainingMethod
。从你的代码来看,它似乎不是


如果是,则必须显示完整堆栈跟踪。

确保已实例化
此.trainingMethod
。从你的代码来看,它似乎不是


如果是,则必须显示完整堆栈跟踪。

确保已实例化
此.trainingMethod
。从你的代码来看,它似乎不是


如果是,则必须显示完整堆栈跟踪。

确保已实例化
此.trainingMethod
。从你的代码来看,它似乎不是


如果是,则必须显示完整的堆栈跟踪。

传递null参数时不会引发
NullReferenceException
,而是在尝试访问null引用上的成员属性/方法/字段时引发。在您的情况下,这意味着
此.trainingMethod
null

如果
trainNetwork
有验证代码来验证传入参数是否为空,则很可能会得到一个
ArgumentNullException
,其中指明了空参数的名称


如果
trainNetwork
试图引用传入的空值上的实例成员,堆栈跟踪将源自该方法,而不是
train

传递null参数时不会引发
NullReferenceException
,而是在尝试访问null引用上的成员属性/方法/字段时引发。在您的情况下,这意味着
此.trainingMethod
null

如果
trainNetwork
有验证代码来验证传入参数是否为空,则很可能会得到一个
ArgumentNullException
,其中指明了空参数的名称


如果
trainNetwork
试图引用传入的空值上的实例成员,堆栈跟踪将源自该方法,而不是
train

传递null参数时不会引发
NullReferenceException
,而是在尝试访问null引用上的成员属性/方法/字段时引发。在您的情况下,这意味着
此.trainingMethod
null

如果
trainNetwork
有验证代码来验证传入参数是否为空,则很可能会得到一个
ArgumentNullException
,其中指明了空参数的名称


如果
trainNetwork
试图引用传入的空值上的实例成员,堆栈跟踪将源自该方法,而不是
train

传递null参数时不会引发
NullReferenceException
,而是在尝试访问null引用上的成员属性/方法/字段时引发。在您的情况下,这意味着
此.trainingMethod
null

如果
trainNetwork
有验证代码来验证传入参数是否为空,则很可能会得到一个
ArgumentNullException
,其中指明了空参数的名称


如果
trainNetwork
试图引用传入的空值上的实例成员,堆栈跟踪将源自该方法,而不是
train

“指向感知器对象”到底是什么意思?在
列车
中是否明确存在异常,或者在
列车网络
中是否存在异常?(顺便说一句,养成遵守.NET命名约定的习惯是个好主意……并保持字段的私有性。)请在此处显示完整的堆栈跟踪。还有培训方法?在哪里初始化?我们看不到在哪里创建了
aNeuron
(因此
perceptron
)、
trainingMethod
trainNetwork
trainingTemplate
。它们都可以是
null
@OlivierJacot Descombes,在使用它们之前不会生成异常-在这种情况下,堆栈跟踪将指向
trainNetwork
(或更低的方法)。您所说的“指向感知器对象”到底是什么意思?在
列车
中是否明确存在异常,或者在
列车网络
中是否存在异常?(顺便说一句,养成遵守.NET命名约定的习惯是个好主意……并保持字段的私有性。)请在此处显示完整的堆栈跟踪。还有培训方法?在哪里初始化?我们看不到在哪里创建了
aNeuron
(因此
perceptron
)、
trainingMethod
trainNetwork
trainingTemplate
。它们都可以是
null
@OlivierJacot Descombes,在使用它们之前不会生成异常-在这种情况下,堆栈跟踪将指向
trainNetwork
(或更低的方法)。您所说的“指向感知器对象”到底是什么意思?在
列车
中是否明确存在异常,或者在
列车网络
中是否存在异常?(顺便说一句,养成遵守.NET命名约定的习惯是个好主意……并保持字段的私有性。)请在此处显示完整的堆栈跟踪。还有培训方法?在哪里初始化?我们看不到在哪里创建了
aNeuron
(因此
perceptron
)、
trainingMethod
trainNetwork
trainingTemplate
。它们都可以是
null
@OlivierJa