下面代码继承构造函数继承this()的作用?意义?求救!
这是在IssueVision中的一段代码,用来实现观察者模式的! 
 public   class   IssueSubject   :   Component,   ISubject   
 //首先定义类IssueSubject继承自Component和ISubject,从这里和类名可以看出,此类是作为OBSERVER(观察者)模式中的目标(Subject)实现的.目标(Subject)对象要求实现对观察者(Observer)的注册(Register)和通知,Component类就是用来实现注册(Register)的.大多数目标(Subject)对象的实现并不是并非将观察者(Observer)的引用直接存储在自己的实例变量中,而是将此人物委托给一个单独的对象(通常为一个容器)Component类就是这样一个容器,下面代码显示了如何用Component类容器来存储对观察者(Observer)对象的引用注册(Register)   
 public   IssueSubject(IContainer   Container)   :   this() 
 { 
 Container.Add(this); 
 } 
 其中构造函数public   IssueSubject(IContainer   Container)   :   this()后面的:this() 
 是什么意思,有什么意义,如果是base()我知道是调用或是说继承父类的构造函数,但这里用的是this(),如果是调用自己的构造函数的话,又缺少参数,因为本身是带参数的,而且这样做的意义是什么!不明白,希望高手赐教   
------解决方案--------------------代码中应该有还有个构造函数吧?不然怎么能编译呢.   
 public IssueSubject() 
 { 
 	InitializeComponent(); 
 } 
------解决方案--------------------有2个构造函数的,一个是IssueSubject(IContainer Container),一个是IssueSubject(),前者加上:this()表示构造函数链,在调用IssueSubject(IContainer Container)之前调用IssueSubject(). 
 应该是这个意思. 
 比如: 
 clasee A 
 { 
     string ss= " "; 
     public A(string a) 
     { 
         ss = a; 
     } 
     public A():this( "ssssssss ") 
     {          
     } 
 }
------解决方案--------------------兄弟,希望等得到你的100分,呵呵   
 首先,c# 里的 this 代表正在运行的当前实例,也就是这个类的一个实例(只不过系统是自己生成,不用我们显式声明和初始化)   
 第二, c#类中的默认构造函数(也就是无形参,无实现体的)在代码中是可以缺省的,我们可以不用代码写出来。(如果缺省,程序在编译的时候,系统会为我们加上这个构造函数)   
 第三,对构造函数 Func(para):this()来说 ,表示的是Func构造函数可以调用 this()函数里的代码,而this()就是Func的无行参的重载函数。 必须这样写,而不能写成Func(para):Func()   
 最后,我们可以知道 
 public IssueSubject(IContainer Container) : this()   
 表示的是 IssuSubject(Container) 调用自己类中的另一个函数中的代码(而这个函数this()就是此类中的默认构造函数 IssueSubject() ), 
 而恰好,这个默认构造函数 public IssueSubject() { } 没有显式写出来   
 楼主理解了?
------解决方案--------------------//刚找到的代码,是有我说的那个构造函数的,继承Component,一般都有InitializeComponent函数的 
 using System; 
 using System.Collections; 
 using System.Collections.Specialized; 
 using System.ComponentModel; 
 using System.Configuration; 
 using System.Data; 
 using System.Diagnostics; 
 using System.Windows.Forms; 
 using ThreadHelper; 
 using IssueVision.localhost;   
 namespace IssueVision 
 { 
 	public enum SyncThread 
 	{ 
 		MainThread = 0, 
 		BackgroundThread = 1 
 	}   
 	public class IssueSubject : Component, ISubject 
 	{   
 #region Delagate and Event Declarations 
 		public delegate void PositionChangedEventHandler(object sender, EventArgs e); 
 		public delegate void IssueDataChangedEventHandler(object sender, EventArgs e); 
 		public delegate void ConflictDataChangedEventHandler(object sender, EventArgs e); 
 		public delegate void LookupDataChangedEventHandler(object sender, EventArgs e); 
 		public delegate void Synchronization_StartedEventHandler(object sender, EventArgs e); 
 		public delegate void Synchronization_FinishedEventHandler(object sender, EventArgs e); 
 		public delegate void DataChanged(IVDataSet newIssues);   
 		// PositionChanged is raised when a different issue is selected from the list 
 		public virtual event PositionChangedEventHandler PositionChanged;   
 		// IssueDataChanged is raised when the data changes, either because the user 
 		// edited the data, or because fresh data has arrived from the server 
 		public virtual event IssueDataChangedEventHandler IssueDataChanged;