构造函数的含义

本文关键字:构造函数 | 更新日期: 2023-09-27 18:20:18

一直以来,我认为构造函数的目的之一是在类中创建新的内部对象并设置它们的值。但当我尝试在MainPage构造函数中的Silverlight创建控件(它是用于移动支付的控件)时,我在第三方程序集中得到了一个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);
    }

构造函数的含义

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

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