1
type Service = Object
type Services = ConcurrentDictionary<Type, Service>
为什么会这样:
// If we use this form, we get a compiler warning:
type GetService<'T> = Services -> 'T
let GetService:GetService<'T> = fun services ->
services.[typeof<'T>] :?> 'T
产生警告:
“的方法或函数 '的GetService'不应该给出明确的类型参数,因为它没有声明它的类型参数明确性。“
但这并不:
let GetService<'T> (services : Services) =
services.[typeof<'T>] :?> 'T
用法示例:
let someService = services |> GetService<SomeServiceType>
如果我要纠正的第一个版本,以免得到警告,我怎么会改变的定义?
是的,工作。谢谢! –