我最近有一个 WinRT 类定义,其方法如下:
public void Foo(string x){}
public void Foo(CustomClass x){}
编译器虽然抛出了一个错误
Earlz.FooBar 的 1 参数重载必须通过使用 Windows.Foundation.Metadata.DefaultOverloadAttribute 进行装饰,将一个方法指定为默认重载。
这个属性有什么样的含义?我不熟悉 WinRT 投影的工作原理,但我所写的最终将是一个可公开使用的 API。所以,我想确保我不会做任何会给使用 API 的人带来痛苦的事情。我应该将我的Foo
方法重命名为FooCustom
或类似,还是在更常用的函数上使用 DefaultOverload?
另外,我尝试查找此属性的作用以及为什么需要它,但MSDN像往常一样缺乏详细信息,只给出了单句描述“表示方法是默认的重载方法”
我认为这个属性的主要原因是因为 Javascript 只支持参数计数的重载,而不是参数类型。但是,Javascript 应用程序如何访问具有类型重载的非默认 WinRT 方法?