-1

一直以来,我认为构造函数的目的之一是在类中创建新的内部对象并设置它们的值。但是,当我尝试在 Silverlight 中在 MainPage 构造函数中创建控件(它是用于移动支付的控件)时,我在第三方程序集中得到了 NullReferenceException。当我将创建代码移动到按钮处理程序时,它工作正常。

问题:这是特定的 Silverlight 行为还是我理解构造函数的任务不对?

    // Constructor
    public MainPage ()
    {
        InitializeComponent ();

        //Exception
        Banner Banner = new GeneralBanner (ContentPanel);
    }

    // Banner
    public GeneralBanner (Grid contentPanel)
    {
        AdBanner = new InneractiveAd (AppId, InneractiveAd.IaAdType.IaAdType_Interstitial,
            ContentPanel, 30, Options);
    }
4

1 回答 1

0

构造函数确实根据您的想法进行基本初始化,这是标准的。但是不要将由于外部控件的设计而导致的这种失败与构造函数的概要联系起来。看来此控件依赖于此时尚未调整大小的其他项目,并且可能由于在主页中初始构建期间未测量高度和宽度返回nan值而失败。

请参阅Silverlight 布局系统以了解更多横幅在初始构建期间失败的原因。

于 2013-06-29T13:09:33.133 回答