一段时间以来,我一直在构建各种基于 Web 的程序和东西,但对 .NET 还是很陌生,并且“正确地”做事。由于我完全是自学成才,在诸如此类的网站的帮助下,我对基础知识的理解是有限的。
所以,我有一系列函数,它们根据输入的参数返回我想要的数据,这是非常基本的东西,显然一切正常。但是,我试图通过使用类来更轻松地调用这些函数。
所以,假设我有一个函数,它返回一个填充的DropDownList
转换为 HTML 字符串
Function GetList(ListRequired as String) as String
' Do stuff to return a dropdownlist whos contend is determined by `ListRequired`, converted to an HTML string
End Function
在这个例子中,它工作得很好,但要使用它,我必须知道为“ListRequired”输入什么才能得到我想要的。
因此,假设ListRequired
para 的选项是“mastercategory”、“brandlist”、“priceranges”,以返回一组不同的列表 - 每个选项都会将代码从数据库中的检索信息中发送出去并相应地返回。
假设我希望第三方开发人员能够使用所需的最基本“指令”量调用此函数,甚至不必ListRequired
通过将其作为类提供来告诉他可用列表。
Public Class DropDownLists
Public Property MasterCategory
Public Property BrandList
Sub New()
Me.MasterCategory = HTMLControls.RenderSearchFilters("mastercategory")
Me.BrandList = HTMLControls.RenderSearchFilters("brandList")
End Sub
End Class
然后,开发人员可以非常简单地从 Visual Studio/VWD 等中调用它:
Dim dd As New DropDownLists
Dim list1Html as String = dd.MasterCategory
Dim list2Html as String = dd.BrandList
因为 VWD 等创建了所有方便的帮助程序并显示类公开的属性,所以使用此代码非常容易,而不必经常参考手册。
但是......在创建类的新实例时:
Dim dd As New DropDownLists
这将导致服务器处理类中创建属性的所有函数,如果有很多属性,这将非常低效。
所以我尝试使用我自己对逻辑的解释并写了这个:
Public Class DropDownLists
Shared Property Master
Shared Property Brand
Sub New()
End Sub
Public Class MasterCategory
Sub New()
DropDownLists.Master = HTMLControls.RenderSearchFilters("mastercategory")
End Sub
End Class
Public Class BrandList
Sub New()
DropDownLists.Brand = HTMLControls.RenderSearchFilters("brandList")
End Sub
End Class
End Class
希望我能够为主类别下拉菜单创建 HTML,例如:
Dim dd as New DropDownLists.MasterCategory
但这不起作用,经过反思,我想我明白为什么......它不是返回字符串,而是创建一个新类型。
所以……我的问题是……
什么是实现我正在寻找的正确方法,即能够通过键入来创建这些字符串输出
Dim dd As New DropDownLists
Dim list1Html as String = dd.MasterCategory
Dim list2Html as String = dd.BrandList
不必传递可能未知的字符串参数,或在每次DropDownLists
创建类时创建所有属性,即只运行我需要的输出代码。