由Average想到的

Jan 28, 2010 at 3:01 PM
Edited Jan 28, 2010 at 3:04 PM

今天用到了Average,我知道DbEntry没有Average所以打算写SQL

输入完DbEntry.Context.之后发现,老大写了很多GetMax GetSum GetCount GetMaxDate之类的东西

我就在想,真的需要每次添加一种Min Max就要添加一个Get么

有没有更好的解决方法呢?比如.Getlong(EnumF.Max)或者.GetDate("Max").Where(p=>p....)之类的会不会结构更好呢

Jan 28, 2010 at 3:02 PM

另外今天看SVN的时候发现了老大正在测试FullType。头一次意识到SVN可以学到很多东西

Jan 28, 2010 at 3:03 PM

可惜SVN不能批量下载历史,Browse Log之后每次点击一个文件都慢的要死

Coordinator
Jan 29, 2010 at 1:05 AM

GetMax和GetMaxDate返回类型是不同的,我也不希望返回Object。

.Getlong(EnumF.Max)从调用者的角度似乎只用了一个函数,但是写法上比多个函数更复杂,而且也没有减少实现上的复杂性。

.GetDate("Max")这个对我来说更加不可接受,本来用函数解决,而且有编译时错误提示的方法,写成字符串后,只有到运行时才能提示出错了。

其实相对于调用方的结构,GetMax之类的函数在实现上的复杂性我更在意一些,而且确实结构不够好,还没有想到什么好的解决方法。

使用TortoiseSVN,右键点击目录,选择 TortoiseSVN -> Show log 就能查找到所有的历史更新,确实稍慢,不过可以接受。

Coordinator
Jan 30, 2010 at 12:50 AM

忽然想到,如果用动态语言实现,大概会使用Method Missing吧,那样,它的真实调用方法类似Get("Max"),调用形式类似GetMax(),而且对于动态语言来说,无所谓返回值是不是Object。

.Net 4.0虽然增加了动态语言特性,不过似乎不包括Method Missing。boo语言倒是从一开始就支持,只可惜不是微软官方语言,进度老是落后于.net,而且IDE支持也差一点儿。