Search code examples
c#delegatesanonymous-methods

Conditional assignment using delegate


I want to assign to a datatable such that.

If datatable is null create a new datatable else clear datatable

The code I have written

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

How this will be possible using delegates or anonymous methods? Using shortest code possible.


Solution

  • Well you could use delegates, but I really wouldn't. I'd just use:

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

    That's a lot clearer in terms of what it's doing, IMO.

    Here's the delegate version in all its hideousness:

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