[英]Delegate with ref parameter
有沒有辦法在下面的代碼中保持相同的功能,但無需創建委托? 我正在與包含許多各種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);
}
}
如果你的意思是沒有聲明委托類型,那么可能不是; 很少(如果有的話)內置代表使用ref
; 但你可以把它變成通用的:
delegate void ActionRef<T>(ref T value);
我不確定這會節省多少。 這里可能還有一些擴展方法的技巧,但沒有更多的細節很難說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.