我有两节课。一个是linq-to-sql类,另一个是可序列化的数据转储类。
示例:
Class TableNotes ID 用户身份 NoteText ......功能
[序列化] Class NoteDump NoteText ......功能
他们都会分享一套共同的功能。我认为最好不要复制此功能,因此仅将其添加到TableNotes。我将仅将NoteDump对象用于转储数据。
问题是,我想将NoteDump转换为TableNotes。哪个类应该处理转换,为什么?即TableNotes可以使用NoteDump或NoteDump可以返回TableNotes类型的新对象..或者我可以使用转换运算符。
答案 0 :(得分:1)
真的,选择权归你的。我个人会在课堂上使用“FromXXXX”惯例。在这种情况下,它将是TableNotes上的一种方法:
static TableNotes FromNoteDump(NoteDump noteDump)
{
// conversion
}
如果你需要它们来回转换(或者你认为可能会有类似结构的未来类),请考虑从基类或接口继承。
答案 1 :(得分:1)
LINQ在各种类上实现AsQueryable和AsEnumerable。
您可以在AsNoteDump()
课程上实施TableNotes
...
NoteDump noteDump = new TableNotes().AsNoteDump();
答案 2 :(得分:0)
第三类的工作是隐藏其他课程的呢?