2013-03-21 70 views

回答

1

这是因为它返回所有t的重载从结构的Int32

enter image description here

+0

我只是upvoted你,因为图像=) – 2013-03-21 15:10:54

+0

谢谢,一张图片胜过千言万语:) – 2013-03-21 15:20:53

1

可能是它的整个继承树。尝试通过BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnlyGetMethods

4

因为Int32.ToString() has four overloads。您可以轻松地设置一个断点看到这一点,检查intType.GetMethods()结果,在那里你会看到(其中包括):

[5] {System.String ToString()} 
[6] {System.String ToString(System.String)} 
[7] {System.String ToString(System.IFormatProvider)} 
[8] {System.String ToString(System.String, System.IFormatProvider)} 
+1

+1他字符串方法:布拉沃!!!!!! – 2013-03-21 14:58:29

2

因为Type.GetMethods()回报所有重载这种类型的方法。

Int32.ToString()方法都有4个重载,所以......

System.String ToString() 
System.String ToString(System.String) 
System.String ToString(System.IFormatProvider) 
System.String ToString(System.String, System.IFormatProvider) 
2

的原因是,有更多的的方法,不仅仅是一个名字:

Type intType = typeof(Int32); 

foreach(var v in intType.GetMethods()) 
    Console.WriteLine(v.Name + " " + 
        (v.IsStatic? "static " : "") + 
         string.Join(", ", v.GetParameters() 
             .Select(p => p.ParameterType.Name + " " + p.Name))); 

将打印

CompareTo Object value 
CompareTo Int32 value 
Equals Object obj 
Equals Int32 obj 
GetHashCode 
ToString 
ToString String format 
ToString IFormatProvider provider 
ToString String format, IFormatProvider provider 
Parse static String s 
Parse static String s, NumberStyles style 
Parse static String s, IFormatProvider provider 
Parse static String s, NumberStyles style, IFormatProvider provider 
TryParse static String s, Int32& result 
TryParse static String s, NumberStyles style, IFormatProvider provider, Int32& result 
GetTypeCode 
GetType