У меня есть требование изменить метод, чтобы он имел дополнительный параметр, который будет принимать лямбда-выражение, которое будет использоваться на внутреннем объекте, чтобы вернуть значение данного свойства. Простите мое вероятное неправильное использование терминологии, так как это мой первый набег на выражения LINQ!
Я попытался найти ответ, но, как я уже упоминал, моя терминология, кажется, отключена, и примеры, которые я могу найти, слишком сложны или имеют дело с выражениями для функций сбора, такими как .Where()
, с которыми я знаком.
Что у меня до сих пор (вырезанная версия):
class MyClass
{
private MyObject _myObject = new MyObject() { Name = "Test", Code = "T" };
private string MyMethod(int testParameter, ??? selector)
{
//return _myObject.Name;
//return _myObject.Code;
return ???;
}
}
Я хотел бы назвать это примерно так:
string result = _myClassInstance.MyMethod(1, (x => x.Name));
или
string result = _myClassInstance.MyMethod(1, (x => x.Code));
Очевидно, что части, которые мне не хватает, это параметр selector
в MyMethod
, как применить его к локальной переменной и как передать требуемое свойство в метод, когда я его вызываю.
Любая помощь будет оценена, а также дополнительные бонусные баллы для решений VB.NET, а также, к сожалению, окончательная реализация должна быть в нашем одиночном проекте VB!