簡體   English   中英

此示例使用委托()的確切含義是什么?

[英]What is the exact meaning of this example using delegate()?

我對C#不太了解(我來自Java),對於與該示例相關的委托方法的工作方式,我有以下疑問:

List<string> urlList = IndirizziProtocolliSQL.GetListaIndirizziSiti(dbConfig);

foreach (string currentUrl in urlList)
{
    Debug.Print("Current url: " + currentUrl);

    SPSecurity.RunWithElevatedPrivileges(delegate ()
    {
        using (SPSite oSiteCollection = new SPSite(currentUrl))
        {
            using (SPWeb oWebsite = oSiteCollection.OpenWeb())
            {
            }
        }
    });
}

根據我的理解,閱讀官方文檔: https : //docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/delegates/

委托()用於傳遞一個方法作為另一個方法的輸入參數。

例如,如果我有類似的東西:

public delegate int MyDelegate (string s);

它表示對具有該方法簽名的任何方法的引用(返回類型,方法名稱,放入參數)。

如果正確,那第一個原始示例到底意味着什么? 為什么我有一個using(...){...}塊呢?

該語法的確切含義是什么?

delegate () { }僅表示一個匿名內聯方法/委托已傳遞到函數中。 該方法的主體就像任何C#代碼塊一樣,可以包含using語句或任何其他語句。

這類似於:

private void Method()
{
    using (SPSite oSiteCollection = new SPSite(currentUrl))
    {
        using (SPWeb oWebsite = oSiteCollection.OpenWeb())
        {
        }
    }
});

SPSecurity.RunWithElevatedPrivileges(Method);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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