2012-03-30 44 views
1

我有新問題。我需要使用參數列表來製作返回類型參數自由方法。 代碼:創建方法困境

Builder.DefineMethod("aaa", MethodAttributes.Public | MethodAttributes.Static); 

這是我的代碼。對我來說最好的過載是:

http://msdn.microsoft.com/en-us/library/cbwdt101.aspx

所以,現在的問題是: 我怎樣才能使方法,無需返回參數可以得到論證? (我需要的東西,有什麼可以做到這一點: Builder.DefineMethod("aaa", MethodAttributes.Public | MethodAttributes.Static, Type[] ArgumentTypes

回答

4

通行證null返回類型:

Builder.DefineMethod("aaa", MethodAttributes.Public | MethodAttributes.Static, null, yourArgumentTypes); 

UPDATE

反編譯的TypeBuilder,它看起來像重載沒有返回鍵入通過null到較大的重載,所以它看起來像null是沒有返回類型的重載指示沒有返回類型的方式。

+2

不是'typeof(void)'? – 2012-03-30 16:19:50

+0

@KirkWoll:查看反編譯的代碼,較小的重載將'null'傳遞給較大的返回類型。 – 2012-03-30 16:24:58

+2

有趣。我一直使用'typeof(void)',但試驗都產生了相同的結果。從技術上講,'typeof(void)'更精確,因爲一旦你定義了方法,從'ReturnType'屬性返回的值將是'System.Void'(又名'typeof(void)')。 (但是,因爲它們都產生相同的效果,所以這種差異顯然是學術的) – 2012-03-30 16:27:40