C 事件的繼承

2021-04-13 03:24:04 字數 749 閱讀 6279

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

基類: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(

intprogress, 

string

msg)}

C 事件的繼承

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

C 事件的繼承

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

c 事件的繼承處理

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