为什么C ++ CLI不允许使用扩展方法?

时间:2013-03-14 20:35:35

标签: .net visual-c++ c++-cli extension-methods

我在C ++ CLI中的代码:

[System::Runtime::CompilerServices::ExtensionAttribute]
public ref class MyExtensions abstract sealed {
public:          
    [System::Runtime::CompilerServices::ExtensionAttribute]
    static System::String^ SetC() {
        return gcnew System::String("{") + gcnew System::String("}")  ;
    }
}

但是后面的行抛出一个错误,即String没有成员SetC。

System::String("").SetC();

我也试过使用以下代码:

gcnew System::String("")->SetC();

有什么遗漏?

1 个答案:

答案 0 :(得分:9)

C ++ / CLI将允许您使用扩展方法,但您必须将其称为常规静态方法。有关示例,请参阅this answer,使用Linq的First()作为示例扩展方法进行调用。