Sim*_*mon 3 c# extension-methods c++-cli
我正在用C++/CLI编写.NET程序集,以便在我们基于C#的应用程序中使用.我希望应用程序将一些C++方法看作扩展方法.是否有一些属性可以应用于声明,以指定方法应该被视为C#的扩展方法?
我遇到了同样的问题,这是C++/CLI中扩展方法的一个小例子:
using namespace System;
namespace CPPLib
{
[System::Runtime::CompilerServices::Extension]
public ref class StringExtensions abstract sealed
{
public:
[System::Runtime::CompilerServices::Extension]
static bool MyIsNullOrEmpty(String^ s)
{
return String::IsNullOrEmpty(s);
}
};
}
Run Code Online (Sandbox Code Playgroud)
这个扩展方法可以像C#中的任何其他方法一样使用:
using CPPLib;
namespace CShartClient
{
class Program
{
static void Main( string[] args )
{
string a = null;
Console.WriteLine( a.MyIsNullOrEmpty() ? "Null Or Empty" : "Not empty" );
a = "Test";
Console.WriteLine( a.MyIsNullOrEmpty() ? "Null Or Empty" : "Not empty" );
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎C++并没有像C#那样为我们提供"语法糖".至少我没有找到它.
归档时间: |
|
查看次数: |
3998 次 |
最近记录: |