在C#中,扩展方法可以通过以下方式创建
public static class MyExtensions {
public static ReturnType MyExt(this ExtType ext) {
...
}
}
由于我的所有库都是用C++ / CLI编写的,因此我也想在C++ / CLI中创建.net扩展方法(以便使用一个DLL而不是两个DLL)。我尝试了以下代码
static public ref class MyExtensions {
public:
static ReturnType^ MyExt(this ExtType ^ext) {
...
}
};
但是编译器无法在第一个参数中识别关键字“this”。
error C2059: syntax error: 'this'
有什么方法可以在C++ / CLI中创建扩展方法?
最佳答案
您只需要用ExtensionAttribute装饰方法和包含的类:
using namespace System::Runtime::CompilerServices;
...
[ExtensionAttribute]
public ref class MyExtensions abstract sealed {
public:
[ExtensionAttribute]
static ReturnType MyExt(ExtType ^ext) {
...
}
};
关于.net - 如何通过C++/CLI创建.Net扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012578/