Прежде чем вы начнете кричать «переключитесь!», На мгновение голые со мной.Есть ли структура данных или шаблон дизайна или структура кода, чтобы избежать нескольких операторов if?
Так что у меня есть веб-приложение [forms], в котором используется Reportviewer. В коде позади, у меня есть код, который выглядит следующим образом:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim u As New UriTypeConverter
Dim vSDate, vEDate As Date
vSDate = Session("StartDate")
vEDate = Session("EndDate")
If Session("ReportName") = "Report1" Then
Dim reportparameters(1) As ReportParameter
reportparameters(0) = New ReportParameter("StartDate", vSDate)
reportparameters(1) = New ReportParameter("EndDate", vEDate)
ReportViewer1.ServerReport.ReportPath = "/SSRS01/Report1"
ReportViewer1.ServerReport.SetParameters(reportparameters)
End If
If Session("ReportName") = "Report2" Then
Dim reportparameters(1) As ReportParameter
reportparameters(0) = New ReportParameter("StartDate", vSDate)
reportparameters(1) = New ReportParameter("EndDate", vEDate)
reportparameters(2) = New ReportParameter("Product", Session("ProductName"))
ReportViewer1.ServerReport.ReportPath = "/SSRS01/Report2"
ReportViewer1.ServerReport.SetParameters(reportparameters)
End If
И есть около 12, если заявления, некоторые имеющие различное число параметров, чем другие. Таким образом, в отличие от необходимости писать больше операторов if с различными параметрами. Интересно, есть ли структура, техника, шаблон, который позволил бы мне обойти, писать инструкции для каждого нового отчета, который я создаю. И мне все равно, что нужно. База данных, новая библиотека, изучают 5 новых шаблонов GoF. Без разницы. Только требование/ограничение состоит в том, что это [очевидно] приложение .NET.
Если не ясно, пожалуйста, дайте мне знать.
бы словарь для действия? Я не знаком с синтаксисом VB.NET, чтобы показать вам пример, но в C# он будет выглядеть как 'IDictionary>', с lambdas, соответствующим каждому оператору 'If'. –
dasblinkenlight
Эти утверждения "if" (или их эквиваленты) будут существовать. * И это нормально. * Когда они существуют более одного раза, это когда вы отступаете и рефакторируете и позволяете создать шаблон. Итак, с учетом сказанного, этот фрагмент * один * или * один из многих? * –
@dasblinkenlight - Я не знаком с структурой данных Action, особенно в Webforms. – dotnetN00b