为什么R#告诉我,“并非所有代码路径都返回值”在点击处理程序? [英] Why does R# tell me, "Not all code paths return a value" in a click handler?

查看:67
本文介绍了为什么R#告诉我,“并非所有代码路径都返回值”在点击处理程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的提交按钮单击处理程序的末尾,Resharper警告说,并非所有代码路径都返回一个值。

At the end of my submit button click handler, Resharper warns that, "Not all code paths return a value."

从事件处理程序中得到什么价值?

What value would it be expecting from an event handler?

为了完全披露,这就是事件处理程序:

In deference to full disclosure, this is that event handler:

   $("#submit_button").click(function() {
        // http://stackoverflow.com/questions/18192288/how-can-i-compare-date-time-values-using-the-jqueryui-datepicker-and-html5-time
        var begD = $.datepicker.parseDate('mm/dd/yy', $('#BeginDate').val());
        var endD = $.datepicker.parseDate('mm/dd/yy', $('#EndDate').val());
        if (begD > endD) {
            alert('Begin date must be before End date');
            $('#BeginDate').focus();
            return false;
        }
        else if (begD.toString() == endD.toString()) {
            var dteString = begD.getFullYear() + "/" + (begD.getMonth() + 1) + "/" + begD.getDate();
            var begT = new Date(dteString + " " + $('#BeginTime').val());
            var endT = new Date(dteString + " " + $('#EndTime').val());

            if (begT > endT) {
                alert('Begin date must be before End date');
                $('#BeginTime').focus();
                return false;
            }
        }

        $("#NumberOfResults").css("visibility", "visible");
        $("#NumberOfResults").html("Please wait...");

        EnableButton("submit_button", false);

        // If all are selected, don't enumerate them; just set it at "All" (change of case shows that the logic did execute)
        var deptsList = $('#depts').checkedBoxes();
        if (deptsList.length < deptsArray.length) {
            $('#deptHeader span').html(deptsList.join(", "));
        }
        else if (deptsList.length == deptsArray.length) {
            $('#deptHeader span').html("All");
        }
        // " "
        var sitesList = $('#sites').checkedBoxes();
        $('#sitesHeader span').html(sitesList.join(", "));
        if (sitesList.length < sitesArray.length) {
            $('#sitesHeader span').html(sitesList.join(", "));
        }
        else if (sitesList.length == sitesArray.length) {
            $('#sitesHeader span').html("All");
        }

        $('#hiddenDepts').val(deptsList);
        $('#hiddenSites').val(sitesList);
        var UPCs = $('#UPC').val();
        if (UPCs == "All") {
            $('#UPC').val("1"); // take everything (1 and greater)
        }

        var resultsText = jQuery.trim($("#spanNumberOfResults").text());
        if (resultsText != "") {
            $("#NumberOfResults").css("visibility", "visible");

            if (resultsText == "0") {
                $("#NumberOfResults").css("color", "red");
            } else {
                var href = '/@ConfigurationManager.AppSettings["ThisApp"]/CCRCriteria/LoadReport';
                // report_parms (sic) is referenced from LoadReport
                var report_parms = {
                    GUID: "@Model.GUID",
                    SerialNumber: "@Model.SerialNumber",
                    ReportName: "@Model.ReportName"
                };
                window.open(href, "report_window", "resizable=1, width=850, left=" + (screen.width / 2 - 425));
            }
        }
    }); // end of submit button click


推荐答案

Resharper不是知道事件处理程序。

Resharper isn't aware of event handlers.

它看到你的函数有时会返回false ,有时候不会返回任何内容,并抱怨。

It sees that your function will sometimes return false and sometimes won't return anything, and it complains.

它没有意识到这种模式对于事件处理程序来说非常好。

It doesn't realize that this pattern is perfectly fine for event handlers.

这篇关于为什么R#告诉我,“并非所有代码路径都返回值”在点击处理程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆