2012-03-30 5 views
1

新しい問題があります。私は引数のリストでreturntypeのパラメータを自由にする必要があります。 コード:メソッド作成のジレンマ

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

これは私のコードです。私にとって最高のオーバーロードは、次のとおりです。

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

だから今の質問: どのように引数を取得することができ、リターンパラメータなしでメソッドを作ることができますか?戻り値の型のため

答えて

4

パスnull: は( Builder.DefineMethod("aaa", MethodAttributes.Public | MethodAttributes.Static, Type[] ArgumentTypes私はこれを行うことができますどのような何かを必要とする):

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

UPDATE

逆コンパイルTypeBuilderを、それが復帰せずに過負荷のように見えますより大きいオーバーロードにnullを渡します。したがって、戻り値の型なしのオーバーロードが返り値の型を示さない方法はnullです。

+2

'typeof(void) 'ではありませんか? –

+0

@KirkWoll:逆コンパイルされたコードを見ると、小さなオーバーロードは返り値の型のために大きなものに 'null'を渡します。 –

+2

興味深い。私はいつも 'typeof(void) 'を使っていましたが、両方とも実験すると同じ結果が出ました。技術的には、 'typeof(void)'は、メソッドを定義すると、 'ReturnType'プロパティから返される値が' System.Void'(別名 'typeof(void)')となるという意味でより正確です。 (しかし、両方とも同じ効果を生み出すので、この違いは明らかに学術的です) –