Предположим следующую программка:Как передать выражение <Func<int>> к функции
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
namespace Lambda {
class Program {
public void TheFunction<T> (Expression<Func<T>> action) {
/** logic **/
}
static void Main (string[] args) {
TheFunction(); //this will of course not compile,
// because the Lambda Expression is missing.
}
}
public class foo {
public int bar { get; set; }
}
}
Вопрос здесь в том, как назвать TheFunction? Цель состоит в том, чтобы работать с выражением>, чтобы получить имя свойства, помимо других вещей, в пределах функции.
Я хотел бы иметь что-то вроде этого:
//...
TheFunction((foo f)=> f.bar);
//...
Но когда я пытаюсь это сказать, что аргументы типа не могут быть infered от использования и я должен попытаться определить их, но как?
Было бы разумнее использовать именование 'Func', чем у вас, поэтому я предлагаю вам изменить параметры типа на 'Func <,>'. –
@JeppeStigNielsen Да, вы правы, я не дважды проверял документы ... Спасибо за это. –