我尝试使用C ++ / CLI对内置String类进行扩展,并在C ++ / CLI中使用它而没有成功。
这是最简单的我可以归结为:
[System::Runtime::CompilerServices::Extension]
public ref class MyStringExtensions abstract sealed {
public:
[System::Runtime::CompilerServices::Extension]
static bool TestMethod(System::String^ str) { return false; }
};
现在,当我尝试在其他C ++ / CLI代码中使用它时,我收到一条编译器消息,指出TestMethod不是String的方法。
String^ foo = gcnew ...
...
blah = foo->TestMethod(); // compile-error
有什么想法吗?
答案 0 :(得分:3)
C ++没有扩展方法。
但确实有ADL (Argument-dependent lookup, also known as Koenig lookup)可以说更好。