MethodInfo Signatureを入手してください
-
11-12-2019 - |
質問
メソッドMyMethod:に関連するメソッドInfoがあるとします。
void myMethod(int param1, int param2) { }
.
、メソッドの署名を表す文字列を作成します。
string myString = "myMethod (int, int)";
.
Looping MethodInfoパラメータを介して、パラメータタイプのToStringメソッドを呼び出すことでこれらの結果を達成することができました:
"myMethod (System.Int32, System.Int32)"
.
これを改善することができ、上記の結果を生み出すことができますか?
他のヒント
私が知っている限りでは、プリミティブ(System.Int32
)の real タイプ名を組み込みエイリアス(int
)に変換するものは何もありません。これらのエイリアスの数がごくわずかしかないため、独自の方法を書くのは難しくはありません:
.
public static string GetTypeName(Type type)
{
if (type == typeof(int)) // Or "type == typeof(System.Int32)" -- same either way
return "int";
else if (type == typeof(long))
return "long";
...
else
return type.Name; // Or "type.FullName" -- not sure if you want the namespace
}
言及されている場合、氏名がSystem.Int32
(もちろん完全に合法的であろう)ではなくint
のタイプがタイプである場合、このテクニックはまだ「int」を印刷します。System.Type
はどちらの方法でも同じであるため、たくさんのことができることがあります。