使用委托的条件分配

时间:2011-07-12 09:38:44

标签: c# delegates anonymous-methods

我想分配给一个数据表,以便。

如果datatable为null,则创建一个新的数据表,否则清除数据表

我写的代码

datatable= (datatable== null) ? 
   new DataTable() :  
  delegate(){datatable.Clear(); return datatable;});

如何使用委托或匿名方法实现这一目标?使用最短的代码。

2 个答案:

答案 0 :(得分:6)

可以使用代表,但我真的不会。我只是用:

if (dataTable == null)
{
    dataTable = new DataTable();
}
else
{
    dataTable.Clear();
}

这是一个很多更清楚它在做什么,IMO。

这是代表版本的所有可怕之处:

dataTable = dataTable == null ? new DataTable() :
    ((Func<DataTable>)(() => { dataTable.Clear(); return dataTable; }))();

答案 1 :(得分:2)

你的意思是这样吗?

Func<DataTable, DataTable> datatable = (n => {
    if (n == null)
        n = new DataTable();
    else
        n.Clear();
    return n; });