我试图找出如何在foreach循环中的方法中获取计数器的值。
我考虑过代表,但我无法弄清楚如何做到这一点。
我的方法是删除所有不敬的代码
public static bool ReadExcelFile(string str1, int Id, out int tCount)
{
int primaryCounter = 0;
//Insert new items
foreach (var item in excelList)
{
primaryCounter++;
}
return true;
}
然后我有一个ActionResults,我用它来进行jquery轮询
public ActionResult InsertPolling()
{
int currentCount = //How to get value of counter
string pollingMessage = $"Inserted {currentCount} items";
return Json(pollingMessage, JsonRequestBehavior.AllowGet);
}
我的jQuery是:
function doPollHandler(event) {
$.post('/UploadData/InsertPolling',
function(data) {
alert(data); // process results here
setTimeout(window.doPollHandler, 2000);
});
};
$('#fileUpload').change(function () {
doPollHandler();
});
我看过https://www.tutorialspoint.com/csharp/csharp_delegates.htm
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/using-delegates
但是当我的方法返回一个bool时,我需要得到计数器的值,我就不知道如何做到这一点。
答案 0 :(得分:0)
希望这有助于您了解使用委托的回调
namespace ConsoleApplication1
{
class Program
{
public delegate void Del(int message);
static void Main(string[] args)
{
Del handler = DelegateMethod;
MethodWithCallback(handler);
}
public static void MethodWithCallback(Del callback)
{
for (int i = 0; i < 50; i++)
{
callback(i);
}
}
public static void DelegateMethod(int primaryCounter)
{
System.Console.WriteLine(primaryCounter);
}
}
}