C#WPF值为空?
我得到的值在我的代码中为null,我不太理解。这是我的密码:C#WPF值为空?,c#,wpf,binding,C#,Wpf,Binding,我得到的值在我的代码中为null,我不太理解。这是我的密码: public int[] Data { get { return null; } set { for (int i = 0; i < 256; i++) { i
public int[] Data
{
get
{
return null;
}
set
{
for (int i = 0; i < 256; i++)
{
if (null != value)
{
_histogram[i] = value[i];
}
}
RedrawHistogram();
}
}
其中
值
为空
!我想知道这里发生了什么事?即使我在上面加了一个条件,它还是失败了?谢谢。\u直方图
是空值,而不是值
。您需要在某个时间点将其初始化为int[]
。可能在每次set
调用中,或者在构造函数中调用一次,都不清楚在您的情况下哪个是可取的。我明白了。但是_histogram实际上初始化为_histogram=newint[256];正如我观察到的,在构造函数中。我还没有找到它被销毁的地方。实际上,它的值是空的。整数[256]中的_直方图。我现在很困惑。@NickXTsui好吧,您可以调试代码,但考虑到您提供的代码,value
几乎不可能引发空引用异常。你需要有意识地尝试这样做。对于\u直方图
为空只意味着您没有显示的代码有错误,在您显示代码且代码没有错误之前,这是最有可能的选项。@NickXTsui如果值
确实为空
,那么最有可能的选项是您没有向我们显示您实际执行的代码,因为在拥有该代码的同时也拥有值
在给定行上抛出一个NRE几乎是不可能的。当然,另一个选项是异常被抛出到另一行,并且考虑到get
方法的实现,如果它导致了异常,我不会感到惊讶。
if (null != value)
{
_histogram[i] = value[i];
}