C# Func<>

Общий вид таков Func<Входящий_тип, Возвращаемый_тип>((Имя_переменной_входящего_типа)=>{ реализация });

Результат можно присваивать переменным как во втором примере, или сначала делать делегат, а потом его использовать, как в первом примере.

Параметр передаеться через Invoke.

 

Пример 1:

var buildfunc = new Func<IList<SiteStructure>, string>( 
(lst) =>
{
string str = "|";
foreach (var item in lst)
{
str += item.Name;
}
return str + "|";
});
var lCurrentTemplate = from j in lModel.Templates
select new
{
ID = j.ID,
Name = j.Name,
ClassName = j.ClassName,
LastChange = j.LastChange,
NameSection = buildfunc.Invoke(j.SiteStructures)
};

 

Пример 2:

       

int a = new Func<string,int>((str) =>
{ 
int ret = 0;
if (int.TryParse(str, out ret))
{
return ret;
}
else
{
return -1;
}
}).Invoke("3");

 

Add comment