.net – Inherit SortedDictionary – 这是一个很好的编程实践吗
例如,假设我需要分析/输出给用户的数据库中的大量日期的一组餐馆有大量数据.
因此,在我的代码中,我有一个自定义类,用于保存每个日期的每个餐馆的数据 – 例如: Public Class DateData Public Property Var1 As Double = 0 Public Property Var2 As Double = 0 Public Property Var3 As Double = 0 Public Property Var4 As Double = 0 Public Sub Sub1() .... End Sub ... etc .... End Class 因为我每个日期都得到这些数据(因为日期顺序对我的计算很重要),所以我也设置了以下类(大部分工作/计算完成): Public Class RestaurantData Inherits SortedDictionary(Of Date,DateData) Public Property Name As String Public Property RestaurantLevelData1 As Double = 0 Public Property RestaurantLevelData2 As Double = 0 Public Sub New(ByVal strName As String,ByVal DatesList As List(Of Date)) _Name = strName For Each daDate As Date In DatesList Me.Add(daDate) Next End Sub Public Overloads Sub Add(ByVal daDate As Date) MyBase.Add(daDate,New DateData) End Sub Public Sub Sub1() For i As Integer = 0 To Me.Keys.Count - 1 Dim daDate As Date = Me.Keys(i) Me(daDate).Sub1() .... etc .... Next End Sub ... etc .... End Class 最后,由于这是针对大量的餐馆,我有一个类在餐厅级别上保存这个字典 – 例如: Public Class RestaurantsDict Inherits Dictionary(Of String,RestaurantData) Public Overloads Sub Add(ByVal strName As String,ByVal Dates As List(Of Date)) MyBase.Add(strName,New RestaurantData(strName,Dates)) End Sub End Class 好的,现在我已经设置了这个,我有两个主要问题: >这是一个很好的设置方法吗? 总的来说,这个解决方案运行得非常好,但我想从中学到如何成为一个更好的.Net& OOP程序员. 谢谢! 解决方法
这基本上只是意见,所以它不适合这个网站,但这是一个很好的问题.
简单的答案是它根本没有任何问题,但它肯定没有必要,所以它取决于情况是否值得.例如,通常没有理由使用除Integer,String或Guid之外的任何东西来表示某种ID.但是,如果担心有人可能很容易在UserId和EmployeeId之间混淆,那么为每个人制作自己的特定类型可能是值得的,这样你就不会意外地传递错误的类型.但通常说你不想添加额外的混乱层. 对于泛型集合,我通常会说没有理由这样做,但是当你有列表列表时,我可以看到尝试简化它的愿望,如果没有别的只是为了节省冗长的语法类型名称. 当您考虑到这一点时,如果不存在泛型(例如在.NET 1.0中),则必须定义自己的自定义类型,这很明显,泛型只是方便的问题.因此,如果使用Dictionary(Of String,Double))更方便,那么就这样做,但如果从那里派生自己的类更方便,那就去做吧. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |