Указатель на функцию C # в перегруженной функции

У меня есть 2 перегруженные функции C #, подобные этой:

private void _Insert(Hashtable hash, string tablename, Func<string, object[], SqlCommand> command)
private void _Insert(Hashtable hash, string tablename, Func<string, object[], OleCommand> command)

В основном одна использует OleCommand, а другая SqlCommand для возвращаемого значения функции.

Но уродливая вещь в это то, что я должен привести указатель функции к правильному типу, даже если я чувствую, что компилятор должен без проблем разрешить его:

class RemoteDatabase
{    
      public SqlCommand GetCommand(string query, object[] values);
}

_Insert(enquiry, "Enquiry", (Func<string, object[], SqlCommand>)(_RemoteDatabase.GetCommand));

Есть ли способ сказать компилятору, чтобы он был умнее, чтобы мне не приходилось выполнить приведение типов? Или я сделал что-то не так?

РЕДАКТИРОВАТЬ: Добавил награду, потому что мне действительно интересно учиться. Спасибо за любой совет.

11
задан Alex R. 14 July 2011 в 03:06
поделиться