KiK*_*iKi 21 .net extension-methods c++-cli
在C#中,可以通过创建扩展方法
public static class MyExtensions {
public static ReturnType MyExt(this ExtType ext) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
由于我的所有库都是用C++/CLI编写的,我想在C++/CLI中创建.net扩展方法(为了拥有一个DLL而不是两个).我试过以下代码
static public ref class MyExtensions {
public:
static ReturnType^ MyExt(this ExtType ^ext) {
...
}
};
Run Code Online (Sandbox Code Playgroud)
但编译器无法在第一个参数中识别关键字"this".
error C2059: syntax error: 'this'
Run Code Online (Sandbox Code Playgroud)
有没有办法在C++/CLI中创建扩展方法?
Tob*_*nen 41
您只需使用ExtensionAttribute修饰方法和包含类:
using namespace System::Runtime::CompilerServices;
...
[ExtensionAttribute]
public ref class MyExtensions abstract sealed {
public:
[ExtensionAttribute]
static ReturnType MyExt(ExtType ^ext) {
...
}
};
Run Code Online (Sandbox Code Playgroud)