我試圖查看是否可以將內聯應用於實現的方法,以便不必拼寫出進入的特定類型。我已經完成了一個(不是繼承/實現)方法,但也嘗試使用接口。F#:實現內聯方法(On Inteface)以避免使用實際類型
type public IBookInteraction =
abstract inline CreateBook : 'a -> MethodResult<BasicBookModel>
type public BookInteraction(?userInteraction) =
interface IBookInteraction with
member inline x.CreateBook(bookModel) =
let userId = (^a : (member UserId : Int32 with get) (bookModel))
MethodResult<BasicBookModel>()
我猜有辦法做到這一點,但它並沒有一個通用的運算符(?)在接口方法的簽名工作。
是的,_abstract內聯methods_絕對是無稽之談。只需添加更多信息 - 編寫_static內聯方法非常有用。這是有效的,因爲編譯器完全知道你在調用哪個方法,所以它可以被內聯。也許這就是爲什麼語法允許它的原因(儘管編譯器應該仍然認爲這是無稽之談)。見例如:http://tomasp.net/blog/fsharp-generic-numeric.aspx –
@Tomas - 絕對是。即使是內聯方法,只要它們是非虛擬的,它們都是合理的。 – kvb