我有2层重载C#的功能是这样的:使用OleCommand和其他的SqlCommand为函数的返回值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)
基本上之一。
但是关于这个丑陋的事情是,我必须给函数指针转换为正确的类型,即使我觉得编译器应该能够解决它没有问题:
class RemoteDatabase
{
public SqlCommand GetCommand(string query, object[] values);
}
_Insert(enquiry, "Enquiry", (Func<string, object[], SqlCommand>)(_RemoteDatabase.GetCommand));
有什么办法告诉编译器变得更聪明以至于我不必进行类型转换?还是我做错了什么?
编辑: 增加了一个赏金,因为我真的有兴趣学习。感谢您的任何建议。
哇..所有的答案各有4票!我该如何决定? – Jake 2011-07-15 03:45:29
C#4.0也可以计算出“动态”场景,但是会有性能问题。 – 2011-07-18 09:09:36