动态调用类方法

JCa*_*sso 1 c#

编辑:在现实生活中,我没有Book课程.这只是一个明确的例子.真正的问题确实需要反思来解决它.

假设我有一些课程:

书,苹果,门.

class Book
{
   ...
   public decimal getPrice()
   {...}
   public string getTitle()
   {...}
   public decimal getAuthor()
   {...}
}
Run Code Online (Sandbox Code Playgroud)

和其他类相同的东西.

我可以从字符串动态调用类方法:

Book myBook = new Book("Title", "Author", 44);

string title = runMethod(myBook, "getTitle");
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 5

你可以通过Reflection来做到这一点.

Book myBook = new Book("Title", "Author", 44); 

string title = (string) myBook.GetType().GetMethod("getTitle").Invoke(myBook, null); 
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,它完全是愚蠢的.有时反射非常有用 - 但这至少证明了所需的类型和方法. (2认同)