C#通过传入字段类型来组合方法?

Nit*_*tax 2 c# methods

我不确定如何正确地标题这个问题,但这是我想要做的.

假设我有一个具有ID,firstName和lastName字段的Customer类.现在说我有一个客户列表,我想编写一个方法,将ID,firstName或者lastName写入控制台,具体取决于我指定的那个.

在本质上,我想编写一个方法来接受我想要打印的字段,而不是编写三个单独的方法来打印出每个字段类型.

我知道在过去的几天里我已经读过关于如何在C#中做到这一点但是我的大脑正在超载并且它正在滑落我的脑海......

任何帮助,将不胜感激.

BFr*_*ree 10

public void PrintCustomer<T>(Customer c, Func<Customer, T> func)
{
   Console.WriteLine("{0} , {1}", c.ID, func(c));
}
Run Code Online (Sandbox Code Playgroud)

用法:

PrintCustomer(myCustomer, c => c.FirstName);
Run Code Online (Sandbox Code Playgroud)

要么

PrintCustomer(myCustomer, c => c.LastName);
Run Code Online (Sandbox Code Playgroud)