【问题标题】:how to create anonymous class with interface in C# [duplicate]如何在C#中创建带有接口的匿名类[重复]
【发布时间】:2010-12-30 17:27:08
【问题描述】:

众所周知,C# 3.5 中有一个新概念,即匿名类型。如何创建实现一个接口的匿名类型。实际上,在为我的组件编写 UT 并提高线路覆盖率时,我需要这个。

请帮我解决这个问题。

【问题讨论】:

  • 匿名类型不能实现接口。你想达到什么目的?基本要求是什么?

标签: c#


【解决方案1】:

C# 不支持创建实现接口的匿名类型。来自MSDN

匿名类型是类类型 由一个或多个公众组成 只读属性。没有其他种类 类成员,例如方法或 事件是允许的。匿名类型 不能转换为任何接口或 除对象外的类型。

您可能应该定义一个新的具体类型而不是使用匿名类型,以便您可以实现所需的接口。

【讨论】:

    【解决方案2】:

    听起来您正在寻找类似 MOQ 的模拟框架:http://code.google.com/p/moq/

    它不利用匿名类型 - 这些是非常不同的 java 版本

    【讨论】:

    • 这将是我的评论,听起来好像 OP 实际上对模拟框架感兴趣。
    【解决方案3】:

    不可能让匿名类型实现接口。由于匿名类型仅是数据,因此您似乎想对我实现一个仅数据接口。我确实认为这是一个糟糕的设计。你应该创建一个 DTO(Data-Transfer-Object,一个只有数据的类)。

    但是,如果你确实需要匿名类型来实现接口,请使用duck-typing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多