C#Struct具有相同的成员但名称不同,如何解决?

时间:2016-09-21 01:48:54

标签: c# struct naming

我遇到了一个问题,其中我有两个具有完全相同成员但名称不同的结构(明显违反DRY)。这背后的原因是struct A是函数的输入,struct B是函数的输出。 struct AB的成员完全相同,但它们代表不同的东西。我该如何解决这个问题?

在我的头脑中,我想到了一个父基类,然后让AB继承它,但是把它留空。

更具体地说,我正在开发一个简单的搜索和替换工具。第一个函数创建了一个SearchResult的列表,每个SearchResult包含startingIndextext(已搜索的文本可能有所不同(想想正则表达式) ))。一旦创建了这些SearchResult,我就可以将它们传递给一个替换函数,该函数遍历SearchResult列表然后替换它们。输出是ReplaceResult s的列表 - 在此结构中,它还有startingIndextext(但文本是"被替换后的文本")

我正在学习C#,想到了这个简单的项目。

1 个答案:

答案 0 :(得分:3)

情侣选项

  1. 为什么不使用SearchResultReplaceResult结构,为什么不使用单个结构,也许称为IndexedTextItem

  2. 您可以实施IIndexedTextItem界面,并将SearchResultReplaceResult更改为实现它的类。

  3. 为什么不将它们分开?毕竟它们是不同的东西。具有两个具有相似数据类型但用于不同目的的结构不一定违反DRY。您可能希望将来扩展其中一个,例如也许您可能需要在OriginalText结构中添加ReplaceResult元素,以便稍后支持“撤消”功能。