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