如何在運行時獲取靜態類的方法名?

[英]How to get method name of a static class in runtime?


How to get all methods name in a static class like Math ?

如何在像Math這樣的靜態類中獲取所有方法的名稱?

Output should be similar to following :

輸出應類似於以下內容:

Sin
Cos
Round
...

2 个解决方案

#1


4  

Try this :

嘗試這個 :

    MethodInfo[] methodInfos = typeof(Math).GetMethods(BindingFlags.Public | BindingFlags.Static);
    foreach (MethodInfo methodInfo in methodInfos)
    {
        Console.WriteLine(methodInfo.Name);
    }

Addtionally if you need to know all the parameters too, try something like

另外,如果您還需要知道所有參數,請嘗試類似的方法

    private static void Main()
    {
        MethodInfo[] methodInfos = typeof(Math).GetMethods(BindingFlags.Public | BindingFlags.Static);
        foreach (MethodInfo methodInfo in methodInfos)
        {
            Console.WriteLine(String.Format("{0} with following parameters", methodInfo.Name));
            ParameterInfo[] parameters = methodInfo.GetParameters();
            foreach (ParameterInfo parameter in parameters)
            {
                Console.WriteLine("Name : {0}, Type : {1}", parameter.Name, parameter.ParameterType.FullName);
            }

            Console.WriteLine("--------------");
        }
    }

The output :

輸出 :

Acos with following parameters
Name : d, Type : System.Double

--------------
Asin with following parameters
Name : d, Type : System.Double

--------------
Atan with following parameters
Name : d, Type : System.Double

--------------
Atan2 with following parameters
Name : y, Type : System.Double
Name : x, Type : System.Double

--------------
Ceiling with following parameters
Name : d, Type : System.Decimal

--------------
Ceiling with following parameters
Name : a, Type : System.Double

--------------
Cos with following parameters
Name : d, Type : System.Double

--------------
Cosh with following parameters
Name : value, Type : System.Double

--------------
Floor with following parameters
Name : d, Type : System.Decimal

--------------
Floor with following parameters
Name : d, Type : System.Double

--------------
Sin with following parameters
Name : a, Type : System.Double

--------------
Tan with following parameters
Name : a, Type : System.Double

--------------
Sinh with following parameters
Name : value, Type : System.Double

--------------
Tanh with following parameters
Name : value, Type : System.Double

--------------
Round with following parameters
Name : a, Type : System.Double

--------------
Round with following parameters
Name : value, Type : System.Double
Name : digits, Type : System.Int32

--------------
Round with following parameters
Name : value, Type : System.Double
Name : mode, Type : System.MidpointRounding

--------------
Round with following parameters
Name : value, Type : System.Double
Name : digits, Type : System.Int32
Name : mode, Type : System.MidpointRounding

--------------
Round with following parameters
Name : d, Type : System.Decimal

--------------
Round with following parameters
Name : d, Type : System.Decimal
Name : decimals, Type : System.Int32

--------------
Round with following parameters
Name : d, Type : System.Decimal
Name : mode, Type : System.MidpointRounding

--------------
Round with following parameters
Name : d, Type : System.Decimal
Name : decimals, Type : System.Int32
Name : mode, Type : System.MidpointRounding

--------------
Truncate with following parameters
Name : d, Type : System.Decimal

--------------
Truncate with following parameters
Name : d, Type : System.Double

--------------
Sqrt with following parameters
Name : d, Type : System.Double

--------------
Log with following parameters
Name : d, Type : System.Double

--------------
Log10 with following parameters
Name : d, Type : System.Double

--------------
Exp with following parameters
Name : d, Type : System.Double

--------------
Pow with following parameters
Name : x, Type : System.Double
Name : y, Type : System.Double

--------------
IEEERemainder with following parameters
Name : x, Type : System.Double
Name : y, Type : System.Double

--------------
Abs with following parameters
Name : value, Type : System.SByte

--------------
Abs with following parameters
Name : value, Type : System.Int16

--------------
Abs with following parameters
Name : value, Type : System.Int32

--------------
Abs with following parameters
Name : value, Type : System.Int64

--------------
Abs with following parameters
Name : value, Type : System.Single

--------------
Abs with following parameters
Name : value, Type : System.Double

--------------
Abs with following parameters
Name : value, Type : System.Decimal

--------------
Max with following parameters
Name : val1, Type : System.SByte
Name : val2, Type : System.SByte

--------------
Max with following parameters
Name : val1, Type : System.Byte
Name : val2, Type : System.Byte

--------------
Max with following parameters
Name : val1, Type : System.Int16
Name : val2, Type : System.Int16

--------------
Max with following parameters
Name : val1, Type : System.UInt16
Name : val2, Type : System.UInt16

--------------
Max with following parameters
Name : val1, Type : System.Int32
Name : val2, Type : System.Int32

--------------
Max with following parameters
Name : val1, Type : System.UInt32
Name : val2, Type : System.UInt32

--------------
Max with following parameters
Name : val1, Type : System.Int64
Name : val2, Type : System.Int64

--------------
Max with following parameters
Name : val1, Type : System.UInt64
Name : val2, Type : System.UInt64

--------------
Max with following parameters
Name : val1, Type : System.Single
Name : val2, Type : System.Single

--------------
Max with following parameters
Name : val1, Type : System.Double
Name : val2, Type : System.Double

--------------
Max with following parameters
Name : val1, Type : System.Decimal
Name : val2, Type : System.Decimal

--------------
Min with following parameters
Name : val1, Type : System.SByte
Name : val2, Type : System.SByte

--------------
Min with following parameters
Name : val1, Type : System.Byte
Name : val2, Type : System.Byte

--------------
Min with following parameters
Name : val1, Type : System.Int16
Name : val2, Type : System.Int16

--------------
Min with following parameters
Name : val1, Type : System.UInt16
Name : val2, Type : System.UInt16

--------------
Min with following parameters
Name : val1, Type : System.Int32
Name : val2, Type : System.Int32

--------------
Min with following parameters
Name : val1, Type : System.UInt32
Name : val2, Type : System.UInt32

--------------
Min with following parameters
Name : val1, Type : System.Int64
Name : val2, Type : System.Int64

--------------
Min with following parameters
Name : val1, Type : System.UInt64
Name : val2, Type : System.UInt64

--------------
Min with following parameters
Name : val1, Type : System.Single
Name : val2, Type : System.Single

--------------
Min with following parameters
Name : val1, Type : System.Double
Name : val2, Type : System.Double

--------------
Min with following parameters
Name : val1, Type : System.Decimal
Name : val2, Type : System.Decimal

--------------
Log with following parameters
Name : a, Type : System.Double
Name : newBase, Type : System.Double

--------------
Sign with following parameters
Name : value, Type : System.SByte

--------------
Sign with following parameters
Name : value, Type : System.Int16

--------------
Sign with following parameters
Name : value, Type : System.Int32

--------------
Sign with following parameters
Name : value, Type : System.Int64

--------------
Sign with following parameters
Name : value, Type : System.Single

--------------
Sign with following parameters
Name : value, Type : System.Double

--------------
Sign with following parameters
Name : value, Type : System.Decimal

--------------
BigMul with following parameters
Name : a, Type : System.Int32
Name : b, Type : System.Int32

--------------
DivRem with following parameters
Name : a, Type : System.Int32
Name : b, Type : System.Int32
Name : result, Type : System.Int32&

--------------
DivRem with following parameters
Name : a, Type : System.Int64
Name : b, Type : System.Int64
Name : result, Type : System.Int64&

--------------

#2


0  

How about .GetMembers

怎么樣.GetMembers

var list = typeof(Math).GetMembers().Select(c => c.Name).Distinct().ToList();

注意!

本站翻译的文章,版权归属于本站,未经许可禁止转摘,转摘请注明本文地址:https://www.itdaan.com/blog/2013/02/23/72fd8c0a8935267c13cea8b28865da7a.html



 
粤ICP备14056181号  © 2014-2021 ITdaan.com