使用委托的条件赋值

本文关键字:条件 赋值 | 更新日期: 2023-09-27 18:01:45

我想给一个数据表赋值。

如果datatable是null,创建一个新的datatable,否则清空datatable

我写的代码

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

如何使用委托或匿名方法实现这一点?使用尽可能短的代码

使用委托的条件赋值

可以使用委托,但我真的不会。我只用:

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

这是一个很多清晰的在做什么,IMO。

这是委托版本的所有丑陋之处:

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

你是说像这样的东西吗?

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