我不太喜欢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/en-us/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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句