我正在使用F#中的API(我无法控制),它声明了两个构造函数,如下所示:
public TheType(string bar, bool foo)
public TheType(IDisposable baz, bool foo)
Run Code Online (Sandbox Code Playgroud)
我需要使用第一个构造函数创建对象的实例,但是传递null为bar.F#编译器当然对我试图解决的构造函数感到困惑:
//Private field
static let blah : TheType = new TheType(null, false)
Run Code Online (Sandbox Code Playgroud)
我可以通过强制转换null为字符串来解决问题:
static let blah : TheType = new TheType(null :> string, false)
Run Code Online (Sandbox Code Playgroud)
哪个有效,但这给了我一个汇编警告:
类型'string'没有任何正确的子类型,不需要用作静态强制的目标
这也是有道理的.有没有办法解决过载歧义而不诉诸编译警告?
您可以指定null的类型:
static let blah : TheType = new TheType((null : string), false)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |