2013-12-23 113 views
1

我有一个具有多个参数化构造函数的类。使用参数化构造函数创建类的对象c#

class MyClass{ 
    public MyClass(Context context) : this(context, VERTICAL) 
    { 
    } 
    public MyClass(Context context, int Orientation) : base(context) 
    { 
     init(context, Orientation); 
    } 

    public MyClass(Context context, Android.Util.IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle) 
    { 
       //more code 
    } 

    // I have to make an object of this MyClass into MyDataSetObserver class. 

    public class MyDataSetObserver : DataSetObserver 
    { 
     MyClass mc; 

     public MyDataSetObserver(MyClass _mc) 
     { 
      mc= _mc; 
     } 

     public override void OnChanged() 
     { 
       mc.onDataChanged(); 
     } 

      public override void OnInvalidated() 
     { 
       mc.onDataChanged(); 
     } 
    } 

//DatasetObserver usage 

    public void setAdapter(Android.Widget.IAdapter myadapter, int initialPosition) 
    { 
     if (this.adapter != null) 
     { 
      this.adapter.UnregisterDataSetObserver (adapterDataObserver); 
     } 

     //Assert.assertNotNull ("adapter should not be null", adapter); 

     this.adapter = myadapter; 
     adapterDataCount = adapter.Count; 
     adapterDataObserver = new MyDataSetObserver (this); 
     this.adapter.RegisterDataSetObserver (adapterDataObserver); 
     if (adapterDataCount > 0) { 
      SetSelection (initialPosition); 
     } 
    } 
} 

,但是这给了我MC为空值..

另外,我需要做一个构造函数链,这是正确的做法?

+0

显示的'MyDataSetObserver' –

+0

的使用码@Gokul请参阅更新 – user3034944

+0

在哪里出现了MC一片空白?在MyDataSetObserver构造函数中? – StevieB

回答

1
adapterDataObserver = new MyDataSetObserver (this); 

什么是this在这里?你的班级是MyClass的实例吗?那么它应该有一个Context对象。

否则只是@Yohannes的答案创建的MyClass的实例,然后构建MyDataSetObserver对象传递this

+0

请看我更新的问题 – user3034944

相关问题