C 使用反射特性構建訪問者模式

2022-02-04 15:28:15 字數 829 閱讀 7227

**出自《c#3.0設計模式》

兩個結構的物件

class element

public element part

public element()

public element(element next)

}class elementwithlink : element

}

與反射相關的核心**

abstract class ivisitor

;//搜尋引數與指定引數型別匹配的指定公共方法

//第乙個引數是方法名稱

//第二個引數為引數物件的陣列,順序和型別必須一致

methodinfo methodinfo = this.gettype().getmethod("visit", types);

if (methodinfo != null));}

else

}}

如果不懂請看注釋

訪問器

class countvisitor : ivisitor

public void countelements(element element)

if (element.next != null)

}public void visit(elementwithlink element)

public void visit(element element)

}

客戶端**

class program

}

關於訪問者模式    反射的內容

以後肯定要更詳細的介紹

C 使用反射特性構建訪問者模式

出自 c 3.0設計模式 兩個結構的物件 class element public element part public element public element element next class elementwithlink element 與反射相關的核心 abstract clas...

c 訪問者模式

寫個基類 ifndef employee hpp define employee hpp define cc synthesize vartype,varname,funname protected vartype varname public virtual vartype get funname...

C 訪問者模式

訪問者模式 訪問者模式 visitor 表示乙個作用於某個物件結構中各元素的操作,它使你可以再不改變各元素類的前提下定義作用於這些元素的新操作。結構圖 圖 using system using system.collections.generic using system.linq using sy...