簡體   English   中英

使用ref參數委托

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM