Учитывая любую из приведенных ниже переменных, как я могу их «проверить», чтобы получить значение параметра, переданное в? т.е. 12345.Внутри дерева лямбда/выражения
System.Func<DateTime> f1 =() => DateTime.Now.AddDays(12345);
System.Linq.Expressions.Expression<System.Func<DateTime>>
f2 =() => DateTime.Now.AddDays(12345);
Edit:
два ответы ниже Микаэля и Кирка как ответить на мой вопрос Orignal. Тем не менее, я сделал это немного сложнее, чтобы иметь дело с «реальной жизнью». В идеале я ищу для «общего» решения, которое будет работать с чем-то Alongs линии ниже:
var days = 123;
var hours = 456;
System.Func<DateTime> f1 =() => DateTime.Now.AddDays(days).AddHours(hours);
Expression<System.Func<DateTime>> f2 =() => DateTime.Now.AddDays(days).AddHours(hours);
То, что я на самом деле после того, как способ генерации UNIKEY «ключ» дали lamda выражение. Моя идея - использовать имя метода и пары имя/значение параметра, но я приветствую другие предложения! Благодарю.
'f1' действительно содержит информацию, но только путем проверки сгенерированного ИЛ от компилятора C#. 'f2', если он выполняется, компилируется во время выполнения, а компилятор C# просто создает дерево выражений, которое вы можете проверить с помощью типа и подтипов выражения. – Richard