是否可以在C ++ / CLI中创建和使用自定义System :: String ^扩展方法?

时间:2012-03-06 23:49:44

标签: c++-cli

我尝试使用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

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

C ++没有扩展方法。

但确实有ADL (Argument-dependent lookup, also known as Koenig lookup)可以说更好。