Tay*_*ese 11 .net c# delegates pointers ref
有没有办法在下面的代码中保持相同的功能,但无需创建委托?我正在与包含许多各种DeleteSomethingX(ref IntPtr ptr)方法的第三方API接口,我正在尝试集中IntPtr.Zero检查的代码.
private void delegate CleanupDelegate(ref IntPtr ptr);
...
private void Cleanup(ref IntPtr ptr, CleanupDelegate cleanup)
{
if (ptr != IntPtr.Zero)
{
cleanup(ref ptr);
}
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 10
如果你的意思是没有声明委托类型,那么可能不是; 很少(如果有的话)内置代表使用ref; 但你可以把它变成通用的:
delegate void ActionRef<T>(ref T value);
Run Code Online (Sandbox Code Playgroud)
我不确定这会节省多少.这里可能还有一些扩展方法的技巧,但没有更多的细节很难说.
| 归档时间: |
|
| 查看次数: |
5947 次 |
| 最近记录: |