就這樣知道,這個問題主要是學術,儘管我試圖在現實世界的解決方案中使用這個概念。我意識到這個例子是人爲的,但我相信這個概念是有效的。從函數返回一個(具有函數的匿名類型) - 有沒有更好的方法?
我想寫一些流利這樣的代碼:
copy(my_first_file).to(my_second_file)
短,易於閱讀和理解,完全合法。所以我這樣定義我的複製方法:
Private Function copy(FilePath as String) As Object
Return New With {.to = New Action(Of String)(Function(x) my_real_copy_method(FilePath,x))}
End Function
我意識到,我不能強迫匿名類型爲特定類型(如實現一個接口或其他一些類),我不想開銷定義一個特定的類只是爲了匹配我想要的流利名稱和實際的方法名稱。所以,我是能夠使代碼工作是這樣的:
copy(my_first_file).to.Invoke(my_second_file)
所以沒有智能感知或認知型那裏,我必須包括調用,以便有方法運行。我怎樣才能得到更多的類型安全和排除Invoke方法,在這些限制下:
- 匿名類型的方法返回
- 沒有額外的類或接口
- 優選的是,我不希望在其他參數來傳遞複製()方法,告訴什麼類型返回,除非複製成爲一種通用的方法(但我認爲這意味着定義另一個類/接口,我不想這樣做)
我知道聲音相當苛刻,如果我有點困難,隨時可以打電話給「Bull」邪教!
在此先感謝。
@加貝號請參閱我的回答。 – 2011-03-03 17:44:40