最も簡単な再構築、あなたはできますか?


最近Reporting Serviceレポートをプレイして、マイクロソフトの公式クライアントは実現の中でこのようなコードがあります
        protected void Page_Load(object sender, EventArgs e)

        {

            if (!IsPostBack)

            {

                // Get report path from configuration file

                Uri serverurl = new Uri(ConfigurationManager.AppSettings["ReportServerUrl"]);

                string reportsfolder = ConfigurationManager.AppSettings["SampleReportsPath"];                                           // folder or site path

                string fileextension = (ConfigurationManager.AppSettings["ReportServerMode"] == "SharePoint" ? ".rdl" : String.Empty);  // extension, depending on the report server mode

                                                                                                                        

                ReportViewer1.ServerReport.ReportServerUrl = serverurl;

                ReportViewer1.ServerReport.ReportPath = String.Format("{0}/Company Sales 2008{1}", reportsfolder, fileextension);

                ReportViewer2.ServerReport.ReportServerUrl = serverurl;

                ReportViewer2.ServerReport.ReportPath = String.Format("{0}/Employee Sales Summary 2008{1}", reportsfolder, fileextension);

                ReportViewer3.ServerReport.ReportServerUrl = serverurl;

                ReportViewer3.ServerReport.ReportPath = String.Format("{0}/Product Catalog 2008{1}", reportsfolder, fileextension);

                ReportViewer4.ServerReport.ReportServerUrl = serverurl;

                ReportViewer4.ServerReport.ReportPath = String.Format("{0}/Sales Trend 2008{1}", reportsfolder, fileextension);

                ReportViewer5.ServerReport.ReportServerUrl = serverurl;

                ReportViewer5.ServerReport.ReportPath = String.Format("{0}/Territory Sales Drilldown 2008{1}", reportsfolder, fileextension);

            }

        }


思わず手がかゆくなって、それを:
        protected void Page_Load(object sender, EventArgs e)

        {

            if (IsPostBack) return;



            // Get report path from configuration file

            Uri serverurl = new Uri(ConfigurationManager.AppSettings["ReportServerUrl"]);

            string reportsfolder = ConfigurationManager.AppSettings["SampleReportsPath"];



            // folder or site path. extension, depending on the report server mode

            string fileextension = (ConfigurationManager.AppSettings["ReportServerMode"] == "SharePoint" ? ".rdl" : String.Empty);



            Action<Microsoft.Reporting.WebForms.ReportViewer, string> setReportViewer =

                (report, reportName) =>

                {

                    report.ServerReport.ReportServerUrl = serverurl;

                    report.ServerReport.ReportPath = String.Format("{0}/{2}{1}", reportsfolder, fileextension, reportName);

                };



            setReportViewer(ReportViewer1, "Company Sales 2008");

            setReportViewer(ReportViewer2, "Employee Sales Summary 2008");

            setReportViewer(ReportViewer3, "Product Catalog 2008");

            setReportViewer(ReportViewer4, "Sales Trend 2008");

            setReportViewer(ReportViewer5, "Territory Sales Drilldown 2008");

        }


この変化には3つの点があります.
 
1、IsPostBack条件判断を反転させ、ネストを減らす.
2、設定ReportViewerの同じ論理を抽出し、一つの依頼で設定する.
3、コメントを上りコードと1行置きにし、単独で1行を占める.
これ以上簡単ではないでしょうが、あなたはできますか?Sorry、あなたはきっとできますが、たとえあなたができても、マイクロソフトはしません.あなたはしますか?