c 事件的繼承處理

2021-07-15 03:26:57 字數 737 閱讀 8053

有下面一段**,目的是實現事件的繼承: 

基類:public

class basebusiness

派生類:

public

class mybusiness : basebusiness

} 編譯時提示如下錯誤:   

事件「basebusiness.progressevent」只能出現在 += 或 -= 的左邊(從型別「basebusiness」中使用時除外) 

出現編譯錯誤的原因是:

事件只能從宣告它們的類中呼叫,派生類不能直接呼叫在基類宣告的事件。

要處理基類的事件,通常通過在基類中為事件建立受保護虛方法(oneventname)來實現。派生類可以重寫基類的oneventname方法,也可以直接呼叫基類的oneventname方法,從而實現呼叫基類的事件。重寫基類的oneventname方法,派生類可以截獲基類正在呼叫的事件,對這些事件執行它自己的處理。

修改後的**如下:

基類:public

class basebusiness

} 派生類:

public

class mybusiness : basebusiness

//可以重寫基類的方法

protected

override

void onprogress(

int progress, 

string msg)

}

頂 0

C 事件的繼承

有下面一段 目的是實現事件的繼承 基類 public class basebusiness 派生類 public class mybusiness basebusiness 編譯時提示如下錯誤 事件 basebusiness.progressevent 只能出現在 或 的左邊 從型別 basebus...

C 事件的繼承

有下面一段 目的是實現事件的繼承 基類 public class basebusiness 派生類 public class mybusiness basebusiness 編譯時提示如下錯誤 事件 basebusiness.progressevent 只能出現在 或 的左邊 從型別 basebus...

C 事件的繼承

c 事件的繼承 有下面一段 目的是實現事件的繼承 基類 public class basebusiness 派生類 public class mybusiness basebusiness 編譯時提示如下錯誤 事件 basebusiness.progressevent 只能出現在 或 的左邊 從型別...