【发布时间】:2024-04-20 17:50:01
【问题描述】:
我有以下方法DWCompare 并创建了一个方法ErrorsDiscovered 来检查以下方法是否为真。如何避免第二种方法中的错误?
错误:无法将方法组“DWCompare”转换为非委托类型 bool。
public static void DWCompare()
{
var performDataHour = DbCall.PerformanceDatas.Where(d =>
d.loggedAt > hourlyBegin && d.loggedAt < hourlyEnd).ToList();
var performanceDataOneDay = DbCall.PerformanceDatas.Where(o =>
o.loggedAt >= dayBegin && o.loggedAt < dayEnd).ToList();
var UniqueFunctionCallsThisHour = performDataHour.GroupBy(g => g.functionName)
.ToLookup(g => g.First().functionName, g => g.Average(gx => gx.functionTime))
.OrderByDescending(g => g.FirstOrDefault()).Take(5);
var UniqueFunctionCallsDay = performanceDataOneDay.ToLookup(g => g.functionName);
performEmailDisplay += "<table>";
performEmailDisplay += "<tr>";
performEmailDisplay += "<td><b>Function</b></td>";
performEmailDisplay += "<td><b>Hourly Average</b></td>";
performEmailDisplay += "<td><b>Daily Average</b></td>";
performEmailDisplay += "</tr>";
foreach (var function in UniqueFunctionCallsThisHour)
{
var key = function.Key;
var HourlyAverage = function.First();
var DailyAverageData = UniqueFunctionCallsDay[key];
double DailyAverage;
if (DailyAverageData != null && DailyAverageData.Count() > 0)
{
DailyAverage = DailyAverageData.Average(f => f.functionTime);
if (HourlyAverage > DailyAverage + DailyAverageData.Select(x =>
x.functionTime).ToList().StandardDeviation())
{
performEmailDisplay += "<tr>";
performEmailDisplay += "<td>" + key + "</td>";
performEmailDisplay += "<td>" + HourlyAverage + "</td>";
performEmailDisplay += "<td>" + DailyAverage + "</td>";
performEmailDisplay += "</tr>";
}
}
}
performEmailDisplay += "</table>";
}
public static void ErrorsDiscovered()
{
if (DWCompare)
{
SendEmail();
}
}
【问题讨论】:
-
DWCompare方法不返回任何内容,因此很难判断您要如何确定它是否为“真”。 -
@Amy 我不希望 DWCompare 返回任何东西。我只希望在该方法发现功能缓慢时发送电子邮件。
-
如果您不希望
DWCompare返回任何内容,那么您希望if (DWCompare)评估什么?if条件必须返回bool... -
你说“我创建了一个方法..来检查下面的方法是否为真”然后说“我不希望DWCompare返回任何东西”。这两个不能混用!
-
那么你的寻找较慢运行时间的方法应该返回一个布尔值,类似于
public static bool SlowerRuntimesExist()。那么你的函数可能看起来像:if (SlowerRuntimesExist()) SendEmail;
标签: c# methods static-methods