【问题标题】:C# Struct with same members but different names, how to solve?具有相同成员但名称不同的C#结构,如何解决?
【发布时间】:2016-09-21 01:48:54
【问题描述】:

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

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


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

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

【问题讨论】:

    标签: c# struct naming


    【解决方案1】:

    几个选项

    1. 为什么不拥有一个 SearchResultReplaceResult 结构,而不是一个结构,也许称为 IndexedTextItem,你可以同时使用这两个结构?

    2. 您可以实现IIndexedTextItem 接口,并将SearchResultReplaceResult 更改为实现它的类。

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

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 2011-09-09
      相关资源
      最近更新 更多