在C#中,可以通过以下方式创建扩展方法
public static class MyExtensions {
public static ReturnType MyExt(this ExtType ext) {
...
}
}
因为我所有的库都是用C++/CLI编写的,所以我也想用C++/CLI创建.net扩展方法(以便有一个动态链接库而不是两个)。我已经尝试了以下代码
static public ref class MyExtensions {
public:
static ReturnType^ MyExt(this ExtType ^ext) {
...
}
};
但是编译器无法识别第一个参数中的关键字“this”。
error C2059: syntax error: 'this'
有什么方法可以在C++/CLI中创建扩展方法吗?
发布于 2011-05-16 10:52:39
您只需使用ExtensionAttribute修饰方法和包含类
using namespace System::Runtime::CompilerServices;
...
[ExtensionAttribute]
public ref class MyExtensions abstract sealed {
public:
[ExtensionAttribute]
static ReturnType MyExt(ExtType ^ext) {
...
}
};
https://stackoverflow.com/questions/6012578
复制相似问题