有没有一种方法可以重载一个函数?
我们来看这三个函数:
// Returns StringPropertyInfo
let stringProperty (expr:Expr<'a -> string>) (cfg:EntityInfo<'a>) =
cfg.Property expr
// Returns DatePropertyInfo
let dateProperty (expr:Expr<'a -> System.DateTime>) (cfg:EntityInfo<'a>) =
cfg.Property expr
// Returns BytePropertyInfo
let byteProperty (expr:Expr<'a -> System.Byte>) (cfg:EntityInfo<'a>) =
cfg.Property expr
有没有一种方法可以将它们全部合并为一个?let property expr cfg = ....
如果不行的话,有没有更简洁的方法来实现类似的效果?
| String of Expr<'a -> string>
会抛出编译器错误,指出类型参数'a'未定义
。 - ebbPropertyInfo
需要本身是泛型,以便它可以在内部具有类型变量'a
)。 - Tomas Petricek